對於簡單的字符串字段,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