Hibernate - загрузка объекта на основе поля объекта члена - PullRequest
2 голосов
/ 30 сентября 2008

Как можно загрузить объект через Hibernate на основе значения поля объекта-члена? Например, предположим, что существуют следующие классы с однозначным отношением между bar и foo:

Foo {
    Long id;
}

Bar {
    Long id;
    Foo aMember;
}

Как можно использовать Hibernate Criteria для загрузки Bar, если у вас был только идентификатор Foo?

Первое, что прыгнуло в мою голову, это загрузить объект Foo и установить его в качестве критерия для загрузки объекта Bar, но это кажется расточительным. Есть ли эффективный способ сделать это с помощью критериев, или HQL - способ, которым это должно быть обработано?

Ответы [ 2 ]

3 голосов
/ 30 сентября 2008

Вы можете абсолютно эффективно использовать критерии для достижения этой цели:

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

должен сделать трюк.

0 голосов
/ 30 сентября 2008

Вы можете использовать критерии или HQL.

Пример HQL:

Query query = session.createQuery ("из бара как бара, где bar.aMember.id =: fooId");

query.setParameter ("fooId", fooId);

Список результатов = query.list ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...