Hibernate поиск наследства - PullRequest
1 голос
/ 19 января 2010

Я постараюсь подвести итог моего вопроса.

У меня есть базовый класс "Base" с тремя свойствами.От него наследуются четыре класса - «A», «B», «C» и «D».Они добавляют свои собственные дополнительные свойства.Я сопоставил это с InheritanceType.JOINED.Теперь я хочу найти «базовые» объекты, что означает, что я ищу общие свойства всех объектов «A», «B», «C» и «D».Я знаю, как это сделать.Hibernate поддерживает его "из коробки".

Но я хочу иметь возможность поиска не по всем типам, а по их части.Например, есть флажки, и пользователь выбрал поиск по «A» и «D».Опять же, поиск осуществляется по трем общим свойствам класса «Base».Нужно ли добавлять дополнительный столбец в базовый класс, чтобы различать тип и заполнять его вручную?Я уверен, что Hibernate что-то из коробки, но я не могу найти это.

С уважением, Петар

Ответы [ 2 ]

1 голос
/ 19 января 2010

Вы можете назвать несколько сущностей в HQL из предложения:

from A,D where prop1=:value

возможно, вам нужно будет назвать свойства в предложении where отдельно (я ожидаю, что нет, но вам придется попробовать это):

from A as aa,D as dd where aa.prop1= :value or dd.prop1= :value
0 голосов
/ 20 января 2010

Я попробовал то, что написал выше, и это работает. Поэтому добавьте столбец «type» к сущности «Base» для различения дочерних элементов. Запрос: "from Base where (prop1=:value1) and (prop2=:value2) and (prop3=:value3) and (type in ('1', '4'))".

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