jpa中的@Column
和@Basic
注释有什么区别?它们可以一起使用吗?它们应该一起使用吗?还是其中一个就足够了?
最佳答案:
@Basic
表示要持久化属性,并使用标准映射。它具有允许您指定是否延迟加载属性以及是否可以为空的参数。@Column
允许您指定要将属性持久化到的数据库中的列的名称。
如果您指定其中一个而不指定另一个,那么您将得到默认行为,这是合理的,因此通常人们只使用其中一个,特殊情况除外。
因此,如果我们希望延迟加载属性并指定列名,我们可以说
@Basic(fetch=FetchType.LAZY)
@Column(name="WIBBLE")
如果我们需要默认的、非懒惰的行为,那么只要
@Column
就足够了。