在此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版本可能有问题吗?
我不知道问题在哪里......
答案 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就更容易了。