2016-08-17 13 views
0

ある条件に基づいて3つの異なるテーブルからデータをフェッチする必要がある状況があります。 例エンティティJPA /休止状態の条件付きJoinColumn

@Entity 
class Order{ 
    id; 
    type; 
    typeId; 

    @Join with boqTable to get the Boq Associated with if type == BOQ and id = typeId 
    @Join with customTable to get custom data associated if type == CUSTOM and id = typeId 
} 

Orderエンティティを使用して子テーブルを挿入して更新する必要があります。 JPA/Hibernateを使ってどうすればよいのですか?私はたくさん検索しましたが、エンティティモデルではなくサービスレベルで手動で行う以外は何も解決できませんでした。

+0

参加する一切の条件はありません。 – Kayaman

答えて

1

2非JPA準拠のHibernate固有の機能条件が静的な場合は、Hibernate @Whereアノテーションを参照してください。

Hibernate3のフィルタ条件を事前に定義し、クラスレベルとコレクションレベルの両方で これらのフィルタを添付する機能があります。それ以外の場合は、フィルタを休止参照

https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/

:セクション2.4.6を参照してください。 。フィルタ の条件では、クラスで利用可能な既存の「where」属性と、さまざまな コレクション要素のような制限句を と定義することができます。しかしながら、これらのフィルタ条件は、 をパラメータ化することができる。アプリケーションは、実行時に 特定のフィルタを有効にする必要があるかどうか、およびそのパラメータの値が であるかどうかを判断できます。フィルタはデータベースビューのように使用できますが、アプリケーション内でパラメータ化された です。

https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/filters.html

関連する問題