Рассмотрим классы Account
, RealAccount
, VirtualAccount
и Operation
, что:Использование Hibernate Criteria API, как запросить подсвойство свойство, которое существует только для определенных типов собственности
class Account { }
class RealAccount extends Account { String name; }
class VirtualAccount extends Account { }
class Operation { Account account; }
Это означает, что:
- Только
RealAccount
имеет поле под названиемname
. - Факс
Operation
может бытьRealAccount
илиVirtualAccount
.
Я хочу запросить все Operation
с, которые принадлежат к RealAccount
с определенным именем:
session.createCriteria(Operation.class)
.createAlias("account", "_account")
.add(Restrictions.eq("_account.name", "Alice"))
.list();
Это терпит неудачу.
Мой вопрос: Использование «старых» Hibernate Criteria API, как я могу запросить имя счета, что существует только тогда, когда Operation
«s учетная запись является RealAccount
? Может быть, что-то envolving DetachedCriteria
и Subqueries
...
Это не критерии API. – MarcG