一尘不染

请参考JPA @Column注释解释有关insertable = false和updatable = false的信息

java

如果对字段进行了注释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;
}

阅读 1197

收藏
2020-09-08

共1个答案

一尘不染

当创建/更新相关实体的 责任 不在 当前
实体中时,您可以这样做。例如,您有一个Person和一个Address。您想添加与实体中实体insertable=false, updatable=false@OneToMany关系,只是因为创建或更新并不是实体的责任。相反。Person``Address``Address``Person

2020-09-08