请解释一下可插入=false和updatable=false在参考JPA@Column注释

2022-08-31 06:36:22

如果一个字段是注释的,这是否意味着您不能插入值或更改现有值?你为什么要这样做?insertable=false, updatable=false

@Entity
public class Person {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToMany(mappedBy="person", cascade=CascadeType.ALL)
    private List<Address> addresses;
}

@Entity
public class Address {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne
    @JoinColumn(name="ADDRESS_FK")
    @Column(insertable=false, updatable=false)
    private Person person;
}

答案 1

当创建/更新引用列的责任不在当前实体中,而是在另一个实体中时,可以执行此操作。


答案 2

当您需要在实体中多次映射字段时,定义非常有用,通常:insertable=false, updatable=false

这不是IMO在语义上的东西,但绝对是一个技术问题。


推荐