私は次のグラフを持っています:
OrderLine
OrderLineExtension
OrderLineExtensionA
OrderLineExtensionB
OrderLineExtensionC
OrderLineには、一連のOrderLineExtensionが含まれています。
OrderLineExtensionは次のように定義されます:@Inheritance(strategy = InheritanceType.JOINED)エンティティとしてマークされ、抽象的です
階層内のこれらのクラスごとに、データベースにテーブルが作成されます。
OrderLineのアイテム名が"item"であるが、OrderLineExtensionAのorderReferenceNumber"orderRef"であるクエリを実行しようとしています。
OrderLineExtensionからOrderLineExtensionAへのJava参照がないため、OrderLineからOrderLineExtensionAにトラバースする方法がわかりません。
私はこれまでにこれを持っていますが、もちろん機能しません。
filter=DetachedCriteria.forClass(OrderLine.class);
.add(Restrictions.eq("item", "item"));
.createCriteria("orderLineExtension")
.add(Restrictions.eq("orderReferenceNumber", "orderRef"));
これは、hibernateがクラスorderLineExtensionでorderReferenceNumberを見つけることができないと文句を言うため失敗します。これは、orderLineExtensionAにあるのでtrueです。しかし、どうすれば拡張機能に移動できますか?スーパークラスにサブクラスへの参照がないため、別のcreateCriteriaをネストできません。
どんな助けでもいただければ幸いです。