Hibernateでクエリの問題が発生しています。私は、既存のデータで 'テスト'という表を持っています。私はテストテーブルのスキーマを変更することができないという要件があるので、テストの主キーに対する外部キーである別のテーブル 'testExtension'を作成しました。 testExtensionのデータは、テスト中のデータのサブセットです。つまり、 'testExtension'には 'test'よりも少ない行があります。次のように私は設定ファイルにこの関係を定義したHibernateを使用して「拡張テーブル」を照会する
:この設定で
<class name="Test" table="test">
<id name="testId" column="test_id">
<generator class="sequence">
<param name="sequence">test_id_seq</param>
</generator>
</id>
<property name="name"/>
<joined-subclass name="TestExtension" table="testExtension">
<key column="test_id"/>
<property name="summary" />
<property name="homepage"/>
</joined-subclass>
は、私は、データを移入し、私のJavaプログラムでTestExtensionオブジェクトを作成することができていますこれをHibernate経由で '保存'し、トランザクションをコミットします。また、TestExtensionとTestExtensionの両方にデータを正しく保存します。
これらのテーブルからデータをクエリしようとすると、私の問題が発生しています。 QBEにTestExtension.classを使用して特定のtest_idを照会すると、そのIDがTestとTestExtensionの両方に存在する場合にのみ行が返されます。 Test.classをQBEに使用すると、行が返されますが、TestExtensionに格納されているデータにアクセスすることはできません。
私の質問は、結果がTestとTestExtensionの両方の「左外部結合」に基づいているように、これらのテーブルをどのようにクエリできますか?サンプル、HQL、または何か他のもの(たとえは生のSQLではないことが好ましい)でも、どのような解決策も評価されます。
ありがとうございます!
hibernateアノテーションを使用する可能性はありますか?私は注釈で同じことをexectlyしてしまいました。もしあなたが望むなら、私はサンプルを提出できます。 –