sql >> データベース >  >> RDS >> Oracle

HQLクエリで条件付きで結合しますか?

    対応は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 によって処理されています。



    1. Pythonpsycopg2タイムアウト

    2. エラーの修正mysqlサーバーがなくなりました

    3. ORA-01618

    4. Java PooledConnectionsを正しく使用していますか?