2012-04-28 38 views
0

在這個doc我們可以看到例如使用@CollectioTable註釋的Java EE的例子不工作

我寫了相同的代碼

@Entity public class Person { 
     @ElementCollection 
     @CollectionTable(name="HOMES", joinColumns = @Column(name = "PERSON_ID")) 
     @Column(name="HOME_STATE") 
     protected List<String> vacationHomes; 
     ... 
    } 

Usinf 的Hibernate JPA-2版本1.0.0.Final

部署在JBoss 4.3.0.GA

並獲得異常(同時部署),即column HOME_STATE cann't be mapped on java.util.List

所以我改變清單ArrayList的

該應用程序部署好後。
但行不通!我執行簡單的查詢,但註釋@ElementCollection@CollectionTable被忽略!僅工作@Column註釋

可能是舊的JBoss版本的問題?
我不知道問題所在......

+0

'java.utils.List'是一個錯字還是一個自定義List類? – dimcookies 2012-04-28 11:53:51

+0

這是一個錯字號 – Ilya 2012-04-28 12:31:28

回答

3

屬於JPA 2.0的功能無法正常工作。這是因爲缺少實施。在這種情況下,只有新的註釋存在,但沒有處理(hibernate-jpa-2.0-api-1.0.0.Final只是JPA 2.0接口,而不是實現)。

根據releases notes JBoss 4.3.0.GA附帶Hibernate 3.2.1,它不是JPA 2.0實現。

對於JBoss 5來說,使其運行起來也是不可能的,因爲您可以從this question中讀取它。如果您至少不能更新到JBoss 6.x,那麼使用JPA 1更容易。

+0

太糟糕了。 '@ElementCollection'自JPA 2開始,但我使用的是JBoss 4.3.0.GA :-( – Ilya 2012-04-28 19:56:54

+0

)使用hibernate xml映射我也不能使用Element-Collection? – Ilya 2012-04-28 21:20:13

+0

同樣的限制,但是如果你準備放棄JPA兼容性和使用Hibernate特定的解決方案,CollectionOfElements可能是答案。看起來它是hibernate註釋3.2.1的一部分:http://www.jarvana.com/jarvana/view/org/hibernate/hibernate-annotations/3.2.1。 GA /休眠的註解 - 3.2.1.ga.jar!/org/hibernate/annotations/CollectionOfElements.class?classDetails = OK – 2012-04-29 11:28:26