0

在这个文档中,我们可以看到用法@CollectioTable注释的示例

我写了同样的代码

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

使用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 版本可能有问题吗?
不知道哪里出了问题...

4

1 回答 1

3

作为 JPA 2.0 一部分的功能不起作用。那是因为缺少实现。在这种情况下,只有新的注解,但没有处理(hibernate-jpa-2.0-api-1.0.0.Final 只是 JPA 2.0 接口,不是实现)。

根据发布说明,JBoss 4.3.0.GA 是随 Hibernate 3.2.1 一起发布的,它不是 JPA 2.0 的实现。

正如您可以从这个问题中看到的那样,使用 JBoss 5 使其工作也是不可能的。如果您至少不能更新到 JBoss 6.x,那么坚持使用 JPA 1 会更容易。

于 2012-04-28T12:42:11.417 回答