ElementCollection 注释必须和已定义的 Column 注释一起

当属性通过 @ElementCollection 进行注释后,将为属性创建包含属性标识和值的单独表。在 OpenJPA 中,已注释属性的列名为 element,而 EclipseLink 根据属性的名称对列命名。要仍与通过 OpenJPA 创建的表兼容,添加其 name 属性设置为 element@Column 注释。

@ElementCollection 注释的规则扫描没有带 name 属性的@Column 注释。 自动修复将添加 @Column 注释或编辑没有名称属性的现有 @Column 注释。

例如,该规则标记以下字段访问权实体类中的 @ElementCollection 注释,因为它没有 @Column 注释。

导入 java.util.List;
导入 javax.persistence.ElementCollection;
导入 javax.persistence.Entity;
导入 javax.persistence.Id;

@Entity
公共类 ElementCollectionEntity {
    
    @Id
    专用整数 id;
    
    @ElementCollection
    私人 List<字符串> listofStrings;
}

自动修复将添加 @Column 注解。

导入 java.util.List;
导入 javax.persistence.ElementCollection;
导入 javax.persistence.Entity;
导入 javax.persistence.Id;

@Entity
公共类 ElementCollectionEntity {
    
    @Id
    专用整数 id;
    
    @ElementCollection
    @Column(name = "element")
    私人 List<字符串> listofStrings;
}

有关此问题和其他 OpenJPA 到 EclipseLink 迁移问题的信息,请参阅 OpenJPA to EclipseLink JPA Migration: Mappings 指南。