Java Persistence / JPA:@Column vs @Basic
2022-08-31 08:37:36
JPA 中的 注释 和 有什么区别?它们可以一起使用吗?它们应该一起使用吗?还是其中之一就足够了?@Column
@Basic
JPA 中的 注释 和 有什么区别?它们可以一起使用吗?它们应该一起使用吗?还是其中之一就足够了?@Column
@Basic
@Basic
表示要持久化属性并使用标准映射。它具有参数,允许您指定是否要延迟加载属性以及它是否为 null。
@Column
允许您指定数据库中要将属性保存到的列的名称。
如果您指定一个而不指定另一个,那么您将获得明智的默认行为,因此通常人们只使用一个,除了特殊情况。
因此,如果我们想要延迟加载属性并指定列名,我们可以说
@Basic(fetch=FetchType.LAZY)
@Column(name="WIBBLE")
如果我们使用默认的,非懒惰的行为,那么就足够了。@Column
除了@djna的答案外,值得注意的是,应该与 和 进行比较。只能在任何属性上指定其中之一。@Basic
@OneToMany
@ManyToOne
@ManyToMany
@Column
并且可以与其中任何一个一起指定,以描述数据库列属性。@JoinColumn
这是两组可以一起使用的批注,但一次只能使用每组批注的一个批注。