Java EE示例不起作用

时间:2012-04-28 07:17:31

标签: java hibernate jpa-2.0

在此doc中,我们可以看到使用@CollectioTable注释

的示例

我写了相同的代码

@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

所以我将List更改为ArrayList

该应用程序部署得很好。
但是效果不好!我执行简单查询,但注释@ElementCollection@CollectionTable被忽略了!仅使用@Column注释

旧JBoss版本可能有问题吗?
我不知道问题在哪里......

1 个答案:

答案 0 :(得分: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就更容易了。