9.2. 制限

table-per-concrete-class マッピング戦略への「暗黙的ポリモーフィズム」アプローチにはいくつかの制限があります。<union-subclass> マッピングに対しても若干弱めの制限があります。
次のリストで、Hibernate における table-per-concrete-class マッピングの制限や暗黙的ポリモーフィズムの制限を示します。
table per class-hierarchy , サブクラスごとのテーブル(table-per-subclass)
  • ポリモーフィックな多対一: <many-to-one>
  • ポリモーフィックな一対一: <one-to-one>
  • ポリモーフィックな一対多: <one-to-many>
  • ポリモーフィックな多対多 : <many-to-many>
  • ポリモーフィックなload() あるいは get(): s.get(Payment.class, id)
  • ポリモーフィックなクエリ: from Payment p
  • ポリモーフィックな結合: from Order o join o.payment p
外部結合によるフェッチに対応しています。
table per concrete-class (union-subclass)
  • ポリモーフィックな多対一: <many-to-one>
  • ポリモーフィックな一対一: <one-to-one>
  • ポリモーフィックな一対多: <one-to-many> ( inverse="true" のみ)
  • ポリモーフィックな多対多 : <many-to-many>
  • ポリモーフィックなload() あるいは get(): s.get(Payment.class, id)
  • ポリモーフィックなクエリ: from Payment p
  • ポリモーフィックな結合: from Order o join o.payment p
外部結合によるフェッチに対応しています。
table per concrete class (暗黙的ポリモーフィズム)
  • ポリモーフィックな多対一: <any>
  • ポリモーフィックな多対多 : <many-to-many>
  • ポリモーフィックなload() または get(): s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()
  • ポリモーフィックなクエリ: from Payment p
ポリモーフィックな一対一、ポリモーフィックな一対多、ポリモーフィックな結合、外部結合フェッチには対応していません。