如何根据成员对象的字段值通过Hibernate加载对象?例如,假设存在以下类,bar和foo之间具有一对一的关系:

Foo {
    Long id;
}

Bar {
    Long id;
    Foo aMember;
}

如果您只有Foo的ID,那么如何使用Hibernate Criteria来加载Bar?

第一件事就是加载Foo对象并将其设置为Criterion以加载Bar对象,但这看起来很浪费。是否有一种有效的方法可以使用Criteria执行此操作,还是以这种方式处理HQL?

有帮助吗?

解决方案

您绝对可以以有效的方式使用Criteria来实现这一目标:

session.createCriteria(Bar.class).
        createAlias("aMember", "a").
        add(Restrictions.eq("a.id", fooId));

应该这样做。

其他提示

您可以使用Criteria或HQL。

HQL示例:

查询query = session.createQuery(" from bar as bar bar bar.aMember.id =:fooId");

query.setParameter(" fooId",fooId);

列出结果= query.list();

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top