1
同じ継承ツリーで単一テーブル型の継承と結合テーブル型を混在させるにはどうすればよいですか? 私はJPAだけで休止状態を使用していません。 私は、JPA仕様を読んで混在継承の正式なサポートはないことを知っています。 アーキテクチャを変更できません。これは、休止状態で動作しましたが、今はopenjpaを使用してこれを実装する必要があります。 私はいくつかの回避策を探しています。JPAで継承型を混在させる方法
同じ継承ツリーで単一テーブル型の継承と結合テーブル型を混在させるにはどうすればよいですか? 私はJPAだけで休止状態を使用していません。 私は、JPA仕様を読んで混在継承の正式なサポートはないことを知っています。 アーキテクチャを変更できません。これは、休止状態で動作しましたが、今はopenjpaを使用してこれを実装する必要があります。 私はいくつかの回避策を探しています。JPAで継承型を混在させる方法
これは私のために働いている:
スーパークラス: "工ass" は実体ではないことを
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TYPE_DISCRIMINATOR")
public class A extends SomeClass implements SomeInteface {
…
@Id
@Column(name = "ID", nullable = false, precision = 0)
public Integer getPk() {
return super.getPk();
}
…
注意してください。
@Entity
@SecondaryTable(name = "A_SECOND_TABLE", pkJoinColumns = @PrimaryKeyJoinColumn(name ="ID"))
@DiscriminatorValue("BD")
public class B extends A implements SomeIntefaceB {
…
は、スーパークラスの主キー「ID」に参加して新しいテーブル「A_SECOND_TABLE」を作成します -
サブクラスが継承「結合します」。
@Basic
@Column(table = "A_SECOND_TABLE", name = "STATUS", nullable = false, precision = 0)
お知らせテーブル値:結合列をではなく、私たちのテーブルに表示されます 各フィールドは、次のように記されています。
サブクラス - 単一テーブル継承:
@Entity
public class C extends A implements SomeIntefaceC {...
単純な単一テーブル継承。
コンテキストを追加する必要があります。あなたがしようとしていることのコードを投稿できますか? – bradimus
JPAでは、ツリーのルートに継承戦略を明示するように明確に指示しています。あなたはそれをその制約とどのように「ミックス」できますか? –