比较来自世界各地的卖家的域名和 IT 服务价格

请解释一下 insertable=false 和 updatable=false 与注释有关 JPA @Column

如果该字段是注释
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;
}


</address>
已邀请:

三叔

赞同来自:

如果你会这样做

责任

为创造/更新我们正在谈论的适当精华,没有谎言

当前的

实体。 E.g. 你有
Person


Address

. 你想补充一下
insertable=false, updatable=false

对关系
@OneToMany

有本质
Person

实际上
Address

只是因为本质
Address

不负责创建或更新
Person

. 所有相反的。

石油百科

赞同来自:

定义
insertable=false, updatable=false

当您需要以一定要以实质上比较的情况而言,它是有用的:

使用复合键时

使用
http://en.wikibooks.org/wiki/J ... ships
使用
http://en.wikibooks.org/wiki/J ... _Keys
它 IMO 不是一个语义的事情,但绝对是技术性的。

龙天

赞同来自:

我想添加答案

BalusC



Pascal Thivent

一个常见的消费
insertable=false, updatable=false

:

考虑一列不是

标识符

, 和有点儿

序数词

. 计算序列号的责任不一定介绍应用程序。

例如,序列号开始于 1000 每个新对象应该增加一个。 它易于执行,并且非常正确,在数据库中,在这种情况下,这些配置有意义。

郭文康

赞同来自:

另一个示例列 "created_on", 在其中,您希望数据库处理创建日期

要回复问题请先登录注册