java - 使用 EclipseLink 在 @MappedSuperclass 基类上使用 @ElementCollection 和 @CollectionTable

标签 java hibernate jpa jpa-2.0 eclipselink

我有一个基类定义如下:

@MappedSuperclass
public abstract class BaseUser {
    @ElementCollection(fetch = FetchType.EAGER)
    @CollectionTable(name = "user_tags",
        joinColumns = {
                @JoinColumn(name = "owner_id", referencedColumnName= "tagName")})
    public Set<String> getTags() {...}

还有一堆扩展了 BaseUser 的派生用户类。
使用 Hibernate,为所有派生类创建了一个“user_tags”表(这是我想要的)。
在移动到 EclipseLink 之后,引擎似乎试图一遍又一遍地添加“owner_id”和“tagName”列作为派生类的数量,这显然会导致表创建失败。 有没有办法在 EclipseLink 中获得与 Hibernate 相同的行为? JPA 规范在这种情况下期望什么?

最佳答案

似乎是一个错误。请记录错误并为其投票。

它可能已经被修复,所以也请尝试最新版本。

关于java - 使用 EclipseLink 在 @MappedSuperclass 基类上使用 @ElementCollection 和 @CollectionTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13222699/

相关文章:

java - ProcessBuilder.start() 导致主机 JVM 退出

java - 如何重构循环循环?

java - 创建 Hibernate 类型以使用 PostgreSQL 保存 JSONObject

mysql - 使用 Hibernate 查询缓存时的缓存更新

java - 具有集合的 Hibernate 或 SQL 查询 M-N 成员?

java - 是否必须安装 Ant 才能运行 Maven 的 maven-antrun-plugin?

java - 只要 ServerSocket 空闲,Linux 上的 Tomcat6 就会使用 100% 的 CPU

java - 在 JodaTime 中使用 Hibernate 注释的问题

java - 为什么 hibernate 需要 java.lang.Double 的默认构造函数?

java - JPA Hibernate::实体的继承,带有附加的 OneToMany 列表