为了账号安全,请及时绑定邮箱和手机立即绑定

spring-data-jdbc 只读

spring-data-jdbc 只读

白衣染霜花 2023-10-13 10:12:36
我试图使某些字段只读->插入和更新又名save()不应将该字段发送到数据库,但应使用select填充该字段。org.springframework.data.annotation.ReadOnlyProperty 中的@ReadOnlyProperty并不能解决问题。版本: spring-boot:2.2.0.RC1,spring-data-jdbc:1.1.0.RELEASE,spring-data-commons:2.2.0.RELEASE数据库: MSSQLspring-data-jdbc 只读它应该有效吗?还有其他方法吗?注意:请不要将 spring-data-jdbc 与 spring-data-jpa 混合使用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;}import org.springframework.data.annotation.Id;public class Employee {    @Id    private Long id;    private String name;}@Testpublic 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);}LOG: 执行准备好的 SQL 语句 [INSERT INTO Organization (name, readOnlyProperty) VALUES (?, ?)]执行准备好的 SQL 语句 [INSERT INTO 员工 (姓名, 组织) VALUES (?, ?)]
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

这是一个错误。我为它创建了DATAJDBC-431,它可能会在下一个服务版本中修复。



查看完整回答
反对 回复 2023-10-13
?
慕村9548890

TA贡献1884条经验 获得超4个赞

我没有测试,但根据这个

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

@Column(name="COLUMN_NAME",updatable=false, insertable=false)
private String fieldName;

应该使该字段只读。


查看完整回答
反对 回复 2023-10-13
  • 2 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信