如何根据成员对象的字段值通过Hibernate加载对象?例如,假设存在以下类,bar和foo之间具有一对一的关系:
Foo {
Long id;
}
Bar {
Long id;
Foo aMember;
}
如果您只有Foo的ID,那么如何使用Hibernate Criteria来加载Bar?
第一件事就是加载Foo对象并将其设置为Criterion以加载Bar对象,但这似乎很浪费。是否有一种有效的方法可以使用Criteria执行此操作,还是以这种方式处理HQL?
答案 0 :(得分:3)
您绝对可以以有效的方式使用Criteria来实现这一目标:
session.createCriteria(Bar.class).
createAlias("aMember", "a").
add(Restrictions.eq("a.id", fooId));
应该这样做。
答案 1 :(得分:0)
您可以使用Criteria或HQL。
HQL示例:
查询query = session.createQuery(“从Bar开始,bar为bar.aMember.id =:fooId”);
query.setParameter(“fooId”,fooId);
列出结果= query.list();