0

データベースビューに参加しようとしている基準があります。それが可能かどうか疑問に思っています。

私が理解しているように、ルート基準の子オブジェクトにのみ参加しますcreateAliascreateCriteriaについて読みましdetachedCriteriaたが、それらはデータベースエンティティで作成する必要があるようですが、ビューはそうではありません。

HQLに相当するものは次のようになります

    select * from root_criteria rc where rc.id in
(select view.id from DATABASE_VW view where view.field is not null)

前もって感謝します

4

2 に答える 2

1

XML マッピングを試して、データベース ビューを指すエンティティ クラスを作成できます。エンティティの各フィールドは、ビューから選択されたフィールドにマップされます。

ドキュメントからの抜粋:

  • Hibernate マッピングでは、ビューとベース テーブルの間に違いはありません。これはデータベース レベルでは透過的ですが、一部の DBMS はビューを適切にサポートしていません (特に更新の場合)。

  • subselect (オプション): 不変で読み取り専用のエンティティをデータベースの副選択にマップします。これは、ベース テーブルの代わりにビューが必要な場合に便利です。

以下は構成例です。適宜変更してください。

 <class name="MappedClassName" mutable="false">
 <subselect>
 select view.id as viewId from DATABASE_VW view    
 </subselect>
 ...
 </class>
于 2013-04-10T06:35:26.513 に答える
0

はい、基準でビューを使用することは可能です。

ビューを作成します。ビューから選択しているすべての列のマッピング メンバー変数を持つ Java オブジェクト (永続) を作成します。hbm を作成します。

テーブルの場合と同様に、条件で Java オブジェクトを使用できるようになりました。

于 2013-04-10T08:09:20.040 に答える