Преобразование HQL-запроса, включающего элементы (), в Criteria API - PullRequest
0 голосов
/ 26 января 2010

У меня проблемы с преобразованием следующего HQL-запроса в Criteria API, и мне было интересно, могу ли я получить какую-то помощь от вас, ребята


SELECT child FROM Foo AS child 
WHERE child IN (SELECT elements(obj.foos) FROM Bar AS obj WHERE obj.id = ?)

Другими словами, я хочу получить все Foos, на которые ссылается Bar в экземпляре Bar, чей идентификатор равен?.

Редактировать: Обратите внимание, что у меня нет двусторонней связи между сущностями, поэтому Фу не знает, какие Бары имеют ссылку на него. Во-вторых, ссылка Bar на Foo имеет тип ManyToMany.

Ответы [ 2 ]

0 голосов
/ 08 мая 2014

Эти примеры не равны вашему, но они похожи:

Подзапрос Критерии гибернации

Критерии гибернации с отсутствующим свойством (подзапрос)

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

0 голосов
/ 26 января 2010

Что-то вроде:

List<Foo> foos = session.createCriteria(Foo.class).createAlias("bar", "bar").add(Restrictions.eq("bar.id", 12345)).list();

Соответствует:

class Foo {
   Bar bar;
}

class Bar {
   long id;
}
...