【问题标题】:Hibernate, get child object from abstract parent休眠,从抽象父对象获取子对象
【发布时间】:2014-06-24 14:07:21
【问题描述】:

我正在从休眠中获取父抽象对象。获得真正的子对象的最佳方法是什么?

我认为这不是正确的做法:

Long parentId=parent.getId();
Child child=childMgr.getInstance().getById(parentId);

【问题讨论】:

    标签: java hibernate oop hql object-oriented-database


    【解决方案1】:

    您的 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();
    

    这仅适用于您有一对一关系、一对多不同、需要设置为列表的情况。

    【讨论】:

    • @AhmadReza 如果有帮助,请接受或支持答案
    • 如果父母有几个不同的孩子,这个方法有点复杂! .在不改变 hbm 文件的情况下你有什么想法吗?
    • 使用注释代替 XML 配置文件?你的问题很模糊。
    • @melt321 我将孩子定义为 Object Type public class parent{ private Object child;},然后使用if(parent.getChild() instanceof Child) 将适当的后代转换为 parent.getChild()。所以我接受你的回答!
    猜你喜欢
    • 1970-01-01
    • 2013-02-22
    • 2021-07-23
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多