【发布时间】:2014-06-24 14:07:21
【问题描述】:
我正在从休眠中获取父抽象对象。获得真正的子对象的最佳方法是什么?
我认为这不是正确的做法:
Long parentId=parent.getId();
Child child=childMgr.getInstance().getById(parentId);
【问题讨论】:
标签: java hibernate oop hql object-oriented-database
我正在从休眠中获取父抽象对象。获得真正的子对象的最佳方法是什么?
我认为这不是正确的做法:
Long parentId=parent.getId();
Child child=childMgr.getInstance().getById(parentId);
【问题讨论】:
标签: java hibernate oop hql object-oriented-database
您的 Child 应该已经在您的 Parent 对象类中声明:
public class parent{
private Child child ;
//setter getter
}
然后在您的父 hbm(如果使用注释会有所不同)中映射它:
<one-to-one cascade="none" name="child" not-null="true"
class="com.example.child"
column="FOREIGN_KEY" />
然后,一旦你有了父母,你就可以打电话了:
Child child = parent.getChild();
这仅适用于您有一对一关系、一对多不同、需要设置为列表的情况。
【讨论】:
public class parent{ private Object child;},然后使用if(parent.getChild() instanceof Child) 将适当的后代转换为 parent.getChild()。所以我接受你的回答!