Найти экземпляр с хотя бы одним экземпляром указанного типа в связанной коллекции - PullRequest
0 голосов
/ 19 мая 2011

У меня есть существующий домен на работе, и я не смог ограничить результат запроса на основе хотя бы одного экземпляра указанного типа в связанной коллекции.

Например:

Скажите, что у Человека есть связь «один ко многим» с Пэт.Pet является абстрактным и имеет несколько подклассов, таких как Bird, Cat, Dog и т. Д., И сопоставляется с использованием стратегии отображения иерархии таблиц на классы.Лица, у которых есть хотя бы одна собака?

1 Ответ

0 голосов
/ 19 мая 2011

Поскольку домашние животные находятся на стороне «многих», они, вероятно, указывают на свои соответствующие лица. Это означает, что вы можете просто выбрать уникальный (Person) в таблице Pets, где person не равен NULL. Так как вы используете таблицу для иерархии классов, существует столбец дискриминатора, поэтому вы можете различать тип, который называется «.class».

String hql = "select unique(p.person) from Pet p where p.class = ? and p.person is not null"

и затем выполнить запрос, используя позиционные параметры - то есть заменить? с собакой или кошкой или чем-то еще. Обратите внимание, что я составил имена полей, поэтому вам придется заменить их фактическими значениями.

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