対応はHQLです
ADVRoheader ヘッダーから header.advmagencymaster.mamaid, header.advmagencymaster.mamaname,header.trohiono を選択
しかし、HQL では、他のプロパティも使用できるように、オブジェクト全体を取得する方が適切です
from ADVRoheader ヘッダーの内部結合 header.advmagencymaster master
HQL は基礎となるデータベースに依存しません。すべてのデータベース (Oracle、Mysql、SQL サーバーなど) で同じになります。メイン構成ファイルでデータベース接続を変更する必要があります。
モデル クラスは次のようになります
class ADVMAgencyMaster{ private String mamaid;プライベート文字列ママネーム; //getter と setter}class ADVRoheader{ private String trohiono;プライベート ADVMAgencyMaster advmagencymaster; // ADVMAgencyMaster への参照 //getter と setter}
xml で既に多対 1 の関係を定義しています
したがって、ADVRoheader オブジェクトをロードしている間、hibernate は内部オブジェクト参照「advmagencymaster」もロードします。
このためには、fetch="select" の代わりに lazy="false" を指定する必要があります。
lazy="true" - 遅延読み込みは親オブジェクトのみを読み込みます
lazy-"false" - 熱心な読み込みにより、子 (内部) オブジェクトも親オブジェクトと共に読み込まれます。
次のように、両方の hbm.xml ファイルをメイン構成ファイル (hibernate.cfg.xml) に追加します。
ここでセッション ファクトリの終了タグの直前に、データベースでマッピングが行われます。
通常、ジェネレーター要素の場合、整数型を使用し、データベースにも変更を加える必要があります。
メイン クエリの後に 'where' 句を追加して、追加のフィルタリングを行うことができます。ここでは結合条件のみが必要であり、すでに hibernate によって処理されています。