Критерии гибернации фильтр по родителю - PullRequest
1 голос
/ 31 августа 2011

Я хочу отфильтровать объекты по некоторым условиям или если их родитель имеет определенный тип.

class A {}

class B extends A {}

class O {
    A a;
    long n;
}

Я хочу, чтобы все O объекты были n > 100 или a is of type B.

В Criteria что было бы условием or

Ответы [ 2 ]

1 голос
/ 31 августа 2011
Restrictions.eq("a.class", B.class)

У меня были ошибки, когда был выбран тип наследования одной таблицы (с использованием дискриминатора), и где мне пришлось использовать

Restrictions.eq("a.class", B.DISCRIMINATOR_VALUE)

Обратите внимание, что class является неявным свойством. Вам не нужно определять что-то особенное в сущности, чтобы она работала.

0 голосов
/ 31 августа 2011

Вы можете использовать тип «Ограничения» для создания критериев ...

По моему опыту,

это должно быть примерно так:

Restrictions.ge ("n ",)

Извините .... не помню точное имя функции в разделе Ограничения ... Вы можете проверить это в javadoc.

И для сравнения объектов это то же самоекроме того, что вы можете использовать «eq» и ​​дать объект в качестве ограничения ...

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