文章目錄
  1. 1. Code
  2. 2. Explanation
  3. 3. 参考文章

如果一个字段用了注解insertable=false, updatable=false,就表示这个字段既不能插入新的值也不能更新现有的值,那么,我们为什么要这么做呢?

Code

例如我们有如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@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;
}

Explanation

当创建/更新相关实体的责任不在当前实体中时,您将这样做。 例如。 你有一个Person和一个Address。我们会在Person上添加 insertable=false, updatable=false@OneToMany关系与Address实体相关联。因为我们需要的是添加Person实体的时候关联添加他的Address,而不是在添加Address的时候级联保存/更新Person实体。

参考文章

Please explain about: insertable=false, updatable=false Stackoverflow

文章目錄
  1. 1. Code
  2. 2. Explanation
  3. 3. 参考文章