当属性通过 @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 指南。