2

シナリオは以下のとおりです(表を示しています)

Delivery table
------
id  channelId   type
10  100         fax
20  200         email

Fax table
----
id   number
100  1234567
101  1234598

Email table
-----
id   email
200  a@a.com
201  b@b.com 

基本的に、配信とチャネルエンティティ間の1対1の関係ですが、各具象チャネル(fax、email)には異なるメンバーがあるため、2つのエンティティ間に汎用インターフェイス(チャネル)を作成し、@OneToOne関係に使用します。あなたの多くがすでに経験しているかもしれないが、私が成功することができないという単純なシナリオのように私には思えます。私はそのtargetEntityのものを入れてみましたが、役に立たなかった。それでも「配信は未知のエンティティを参照している」と表示されます

何か案は?前もって感謝します

4

1 に答える 1

1

と継承戦略abstractにスーパークラスを使用するのはどうですか? このようなもの:ChannelTABLE_PER_CLASS

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Channel {
    @Id
    @GeneratedValue
    private Long id;

    // ...
}

@Entity
public class Fax extends Channel {
}

@Entity
public class Email extends Channel {
}

@Entity
public class Delivery {
    @Id
    @GeneratedValue
    private Long id;

    @OneToOne
    private Channel channel;

    // ...
}
于 2010-05-01T00:11:00.380 に答える