对于简单的字符串字段,JPA:我应该使用哪个?基本(可选)或列(可空)?
@Entity
class Foo {
//1. @Basic(optional = false)
//2. @Column(length = 100, nullable = false)
String name;
}
我需要使用@Column
注解来限制名字的长度,但我很困惑与可空属性。虽然我使用的其他注释类似@ManyToOne
和@OneToMany
,但使用optional
属性,我希望使用@Basic(optional)
来保持大多数注释的统一。但是我不能用@Basic
来限制名字的长度。
那么,我应该在哪里注释可空属性,由@Basic
或@Column
?
编辑
简单的说,以何种形式,你会喜欢:
表1:
@Entity
class Foo {
@Basic(optional = false)
@Column(length = 100)
String name;
}
表2:
@Entity
class Foo {
@Column(length = 100, nullable = false)
String name;
}
嗯,我个人喜欢表1,因为optional
属性也被@ManyToOne
等注解使用,但表单2也很好,因为它是在单个注释中完成的。
编辑
阅读http://markmail.org/message/osod6rsauwbnkvya后,我有@Basic.optional
和@Column.nullable
之间的差异。但我仍然不知道应该使用哪一个。包含两个注释似乎都很好,所以要使底层表格定义得更好,并且在实际更新之前检查null可能稍微快一点。
[@Basic(可选= false)vs @Column(nullable = false)在JPA]中的可能重复(http://stackoverflow.com/questions/2899073/basicoptional-false-vs-columnnullable-false-in- jpa) – rds 2013-06-18 09:34:58