2

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

Foo {
    Long id;
}

Bar {
    Long id;
    Foo aMember;
}

如果您只有 Foo 的 id,如何使用 Hibernate Criteria 加载 Bar?

我想到的第一件事是加载 Foo 对象并将其设置为加载 Bar 对象的标准,但这似乎很浪费。是否有使用 Criteria 执行此操作的有效方法,或者 HQL 是否应该处理?

4

2 回答 2

3

您绝对可以以有效的方式使用 Criteria 来完成此操作:

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

应该做的伎俩。

于 2008-09-29T22:15:49.247 回答
0

您可以使用标准或 HQL。

HQL 示例:

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

query.setParameter("fooId", fooId);

列表结果 = query.list();

于 2008-09-30T13:00:53.987 回答