根據我的JPA 2.0書(和在線文檔),我應該能夠在單個實體或實體層次結構中混合使用字段和屬性。該類的註釋@Access指定默認訪問。放置在字段或屬性getter時,@Access可以指定應該爲該字段覆蓋默認值。關於@Access,Hibernate不符合JPA標準?
@Entity
@Access(AccessType.FIELD)
Class Foo {
@Id
int id;
@Column(name = "myfield")
String myField;
@Column(name = "myProp")
@Access(AccessType.PROPERTY)
public int getMyProp() {
return 3;
}
public void setMyProp (int p) {
// do nothing
}
}
這個類應該產生一個有三列的表格。然而,它不與Hibernate ...從表中缺少「myProp」列,因爲顯然Hibernate從實體ID採取其字段與屬性cue並且與它一起運行......完全忽略JPA規範與@Access的關係。
任何人都可以證實這一點或我做了一個愚蠢的錯誤?
Hibernate 3.5.3-FINAL - 截至6月17日的最新版本。我看到HHH-5004,雖然它不在眼前,但我認爲Hibernate社區根本不使用「@Access」。想想我應該在那裏打開一個錯誤? – HDave 2010-07-06 06:56:30
@HDave:這就是我所要做的(我通常會用另一個實現來檢查行爲,例如EclipseLink),然後提及規範的相關部分以及它與RI協同工作的事實。測試用例通常是受歡迎的,有助於更快地修復問題。 – 2010-07-06 07:35:23