【发布时间】:2013-06-15 16:25:14
【问题描述】:
我正在尝试配置此 @OneToMany 和 @ManyToOne 关系,但它根本不起作用,不知道为什么。我以前在其他项目上做过这个,但不知何故它不适用于我当前的配置,这是代码:
public class Parent {
@OneToMany(mappedBy = "ex", fetch= FetchType.LAZY, cascade=CascadeType.ALL)
private List<Child> myChilds;
public List<Child> getMyChilds() {
return myChilds;
}
}
public class Child {
@Id
@ManyToOne(fetch=FetchType.LAZY)
private Parent ex;
@Id
private String a;
@Id
private String b;
public Parent getParent(){
return ex;
}
}
一开始我以为是三重@Id注解导致了故障,但是去掉注解后还是不行。所以,如果有人有任何想法,我正在使用 EclipseLink 2.0。
我只是尝试用一些记录执行代码,它返回 s==0 always:
Parent p = new Parent();
Integer s = p.getMyChilds().size();
为什么?
【问题讨论】:
-
不用放列名吗?
-
什么列名?你能说得更具体点吗?
-
你的关系双方都设置了吗? MyChilds 只有在添加条目或从数据库刷新父实体时才会有条目
-
嗨,克里斯,感谢您的留言。是的,这就是重点,我使用
em.find从数据库加载父级,但仍然得到相同的结果(什么都没有)。
标签: java jpa-2.0 eclipselink one-to-many many-to-one