0

テーブルを表すドメイン オブジェクト クラスがあります。このクラスには別のテーブルへの関連付けがありますが、ソース クラスのプロパティはターゲット クラスのプロパティと同じ名前ではなく、休止状態でマップする方法がわかりません。

以下は、セットを持つクラスの例です (1 つの CT から複数の R インスタンスへ)。

public class CT {
    // This is the property in the property-ref down below
    private String b;

    // The set of Rs I want to get - there may be none that correspond to a CT instance.
    private Set rs;
}

public class R {
    // This property is mapped to the column name below.
    private String rBc;
}

<!--Snippet of the mapping for class CT-->

 <set name="rs" lazy="true" sort="MyComparator" table="R" >
      <key column="R_COLUMN_NAME_THAT_REPRESENTS_THE_RELATIONSHIP" property-ref="b" />
      <one-to-many class="CLASS_THAT_R_IS" />
 </set>

Hibernate はこのマッピングを受け入れますが、存在するはずの CT インスタンスから R のセットを取得すると、空の PersistentSet が取得されます。

各 CT インスタンスに R が存在しないか、複数存在する可能性が十分にあることに注意してください。これが私がそこにコンパレーターを持っている理由です-明示的なSQLなしでORDER BY句を実行する方法をHibernateに簡単に伝える方法を理解できません(Hibernateマッピングに書くのをためらっています.

誰かがここで私を助けてくれますか?

4

1 に答える 1

0

マッピングtable="R"内の に問題がある可能性があります。<set ..>これは、子テーブルで直接外部キーを探す代わりに、結合テーブルを使用するように hibernate に指示します。命名から、結合テーブルを使用していないことがわかります。あれは正しいですか?

于 2009-06-19T19:02:39.330 に答える