【发布时间】:2016-03-14 00:28:28
【问题描述】:
那么当我有一个一对多的双向关系时,我该如何确保我根据需要从数据库中获取它们?
例如:
在父类中:
@OneToMany(mappedBy="parent")
List<Child> children;
在子类中:
@ManyToOne
@JoinColumn(name="Parent_Id")
Parent parent;
我只是不确定如何确保当我拥有父级时,我可以获得其子级的列表,反之亦然。不确定 Hibernate 是如何处理的。
如果要孩子,我的第一反应是:
String hql="FROM Parent WHERE id=:id";
Query query = session.createQuery(hql);
query.setInteger("id", id);
Parent p = (Parent)query.uniqueResult();
List<Child>=p.getChildren();
反之亦然:
//insert retrieve child code
Parent p = child.getParent();
我的困惑是我不确定 Hibernate 是否真的在创建时用它们的父/子填充对象,如果是这样,我不确定检索它们的最有效方法。
【问题讨论】: