Red Hat Training
A Red Hat training course is available for Red Hat JBoss Web Server
8.6. ポリモーフィッククエリ
以下のようなクエリは、
select cat from Cat as cat
Cat
だけではなく DomesticCat
などのサブクラスのインスタンスを返します。Hibernate クエリは from
句で任意の Java クラスまたはインターフェースを指定できます (移植可能な EJB-QL クエリはマップされたエンティティのみを指定すべきです)。クエリはこのクラスを拡張する、またはインターフェースを実装するすべての永続クラスのインスタンスを返します。以下のクエリはすべての永続オブジェクトを返します。
from java.lang.Object o // HQL only
インターフェース
Named
はさまざまな永続クラスによって実装できます。
from Named n, Named m where n.name = m.name // HQL only
これらの最後 2 つのクエリでは、複数の SQL
SELECT
が必要であることに注意してください。つまり、order by
句はクエリセット全体を適切に順序付けしません (したがって、Query.scroll()
を使用してこれらのクエリを呼び出すことはできません)。