1

シナリオは次のとおりです

テーブル A には複合 PK があります。

表 A 
--------
a1 (pk)
a2 (pk)
a3 (pk)
foo
バー
LastUpdateDate
LastUpdateUser ========

テーブル B にも、実際には A の PK のサブセットである複合 PK があり、ここでは FK としても機能しています。強制的な FK 制約はありません。

表 B 
-------- a1 (fk,pk) a2 (fk,pk) ふー バー 最終更新日 LastUpdateUser ========

いくつかの方法を試しましたが、どれもうまくいきません。作業中の Hibernate マッピング ソリューションを教えてもらえますか? 注釈スタイルが優れています。

どうもありがとう。

ヴィヴ

4

1 に答える 1

0

次のセットアップが表示されます。仕事に取り掛かるのは難しいかもしれませんが、私の経験に基づくと、それは不必要な複雑さです.

class A implements Serializable {
   @Id
   private PK id = new PK();
   @Embeddable      
    public static final class PK implements Serializable {
        @ManyToOne 
        @JoinColumns ({
        @JoinColumn(name="A1_COL", referencedColumnName = "id.a1"),
        @JoinColumn(name="A2_COL", referencedColumnName = "id.a2"),

        })
         B b;            
        @Basic String a3;
    }    
 }


class B implements Serializable {
   @Id
   private PK id = new PK();
   @Embeddable      
    public static final class PK implements Serializable {                    
        @Basic String a1;
        @Basic String a2;
        @Basic String a3;
    }    
 }

経由でアクセスできるはずです

a.getId().getB()

必要に応じてセッター/ゲッターを追加します。

通常、この種の問題には多くの試行錯誤が必要なので、すぐにうまくいくとは思わないでください。しかし、それはあなたに掘り下げの方向性を与えるはずです. 最終的な構成を特定したら、それを質問に追加して、将来誰かがそれを利用できるようにしてください。

于 2011-06-02T05:25:30.600 に答える