是否必须指定此属性的所有属性
@Column(name = "ID_COMPANY", unique = true, nullable = false)
或只做:
@Column(name = "ID_COMPANY")
对于字符串,我们必须指定长度?
@Column(name = "NAME", length = 30)
或只是:
@Column(name = "NAME")
因为如果我在我的数据库中更改varchar
的长度,我必须在我的映射类中再次更改它,如果我有很多更改,那就很难了。
答案 0 :(得分:1)
不,这不是强制性的。
只有在使用Hibernate生成数据库模式时,才会使用name
以外的大多数选项。如果手动维护架构,则可以安全地省略它们。
但是,其中一些(例如nullable
或unique
)可能对文档有用。
答案 1 :(得分:1)
@Column
注释的所有元素都有默认值。除非您的架构违反了可空性,唯一性,长度等的默认值(或者您的数据库列与您的字段名称不完全匹配),否则您可以将它们从注释中移除以防止混乱。
默认值可以在JavaDoc上看到:http://docs.oracle.com/javaee/7/api/javax/persistence/Column.html