首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring jdbc readOnly

spring jdbc readOnly
EN

Stack Overflow用户
提问于 2019-10-11 08:55:49
回答 2查看 1.9K关注 0票数 1

我正在尝试使某些字段readOnly ->插入并更新,应该不会将该字段发送给DB,但是字段中应该填充select。

来自@ReadOnlyProperty的org.springframework.data.annotation.ReadOnlyProperty并没有做到这一点。

版本:spring: 2.2.0.RC1,spring jdbc: 1.1.0.RELEASE,-data-共用: 2.2.0.RELEASE

db: MSSQL

spring jdbc readOnly

它应该起作用吗?还有其他的方法吗?

注意:请不要将spring jdbc与spring jpa混为一谈。

代码语言:javascript
复制
import java.util.Set;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.ReadOnlyProperty;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.MappedCollection;

public class Organization {
    @Id
    private Long id;
    private String name;
    @Column("readOnlyProperty")
    @ReadOnlyProperty
    private String readOnlyProperty;
    @ReadOnlyProperty
    @MappedCollection
    private Set<Employee> employees;
}
代码语言:javascript
复制
import org.springframework.data.annotation.Id;

public class Employee {
    @Id
    private Long id;
    private String name;
}
代码语言:javascript
复制
@Test
public void insert() {
    // insert should not set readOnlyProperty
    Organization organization = new Organization("org1", "readOnly");
    Employee employee = new Employee("emp1");
    Set<Employee> employess = new HashSet<>();
    employess.add(employee);
    organization.setEmployees(employess);
    organizationRepository.save(organization);
}

日志:执行准备好的SQL语句的插入到组织(名称、readOnlyProperty)值(?,?)

将准备好的SQL语句插入到employee (名称、组织)值(?,?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-14 14:11:58

这是个窃听器。我为它创建了DATAJDBC-431,它可能会在下一个服务发行版中修复。

票数 0
EN

Stack Overflow用户

发布于 2019-10-11 12:25:53

我没有测试,但根据

列注释和XML元素定义了可插入和可更新的选项。这样可以从SQL INSERT或UPDATE语句中省略此列或外键字段。如果表上的约束阻止插入或更新操作,则可以使用这些操作。如果多个属性映射到同一数据库列,例如通过ManyToOne和Id或基本映射使用外键字段,也可以使用它们。将可插入和可更新设置为false,有效地将属性标记为只读。

代码语言:javascript
复制
@Column(name="COLUMN_NAME",updatable=false, insertable=false)
private String fieldName;

应该是只读的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58337646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档