获得;映射类型的Java类是成员类;关于Eclipse/JPA中的嵌套类
我使用代码生成器生成嵌套类,大致如下所示:获得;映射类型的Java类是成员类;关于Eclipse/JPA中的嵌套类,java,jpa,Java,Jpa,我使用代码生成器生成嵌套类,大致如下所示: package generated; @Entity(name = "Items") @Table(name = "ITEMS") @Inheritance(strategy = InheritanceType.JOINED) public class Items implements Equals, HashCode { protected List<Items.Item> item; @OneToMany(
package generated;
@Entity(name = "Items")
@Table(name = "ITEMS")
@Inheritance(strategy = InheritanceType.JOINED)
public class Items
implements Equals, HashCode
{
protected List<Items.Item> item;
@OneToMany(targetEntity = Items.Item.class, cascade = {
CascadeType.ALL
})
@JoinColumn(name = "ITEM_ITEMS_HJID")
public List<Items.Item> getItem() {
if (item == null) {
item = new ArrayList<Items.Item>();
}
return this.item;
}
public void setItem(List<Items.Item> item) {
this.item = item;
}
// ...
@Entity(name = "Items$Item")
@Table(name = "ITEM")
@Inheritance(strategy = InheritanceType.JOINED)
public static class Item
implements Equals, HashCode
{
// ...
}
}
生成包;
@实体(名称=“项目”)
@表(name=“ITEMS”)
@继承(策略=InheritanceType.JOINED)
公共类项目
实现Equals,HashCode
{
受保护的清单项目;
@OneToMany(targetEntity=Items.Item.class,级联={
全部
})
@JoinColumn(name=“ITEM\u ITEMS\u HJID”)
公共列表getItem(){
如果(项==null){
item=newarraylist();
}
退回此项目;
}
公共无效集合项(列表项){
this.item=项目;
}
// ...
@实体(name=“Items$Item”)
@表(name=“ITEM”)
@继承(策略=InheritanceType.JOINED)
公共静态类项
实现Equals,HashCode
{
// ...
}
}
我在Eclipse中遇到以下错误:
映射类型“Items$Item
”的Java类是一个成员类
错误标记在@实体(name=“Items$Item”)
行上
这个错误意味着什么?我能做些什么
我的往返测试(将实体保存到数据库,加载,与原始测试进行比较)运行得很好。我实际上遇到了一个类似的问题,并找到了解决方案:声明映射的成员类不受官方支持。因此,Eclipse抱怨类
Item
是在Items
中定义的
由于代码与您正在使用的JPA实现一起工作,您可以关闭Eclipse中的错误消息:窗口->首选项->Java持久性->JPA->错误/警告->类型->映射的Java类是成员类
您的代码生成器不符合JPA规范