私は、次のエンティティを持っている:インタフェース属性を持つJPAエンティティは可能ですか?
@Entity
public class TestCaseStep implements JPAEntity<Integer> {
...
@Column(name="STEP_NUMBER")
private Integer stepNumber;
@Enumerated(EnumType.STRING)
@Column(name="ACTION")
private Action action;
**@ManyToOne
@JoinColumn(name="connector")
private ScriptItem connector;**
私の属性ScriptItemは3つの他のクラスのためのインタフェースです。実行時の実行で正しいクラスIDを設定するようにJPAを設定することは可能ですか?
その他のリソース:注釈は、私はJAPは、私は3つのクラスの1のIDを保存することを理解させるために使用する必要があります
public interface ScriptItem {
String getValue();
ScriptItemType getType();
}
@Entity
@Table(name="DAT_FEED_XML")
public class FeedXml implements JPAEntity<Integer>, ScriptItem {
...
}
@Entity
@Table(name="DAT_DB_STMT")
public class DbStatement implements JPAEntity<Integer>, ScriptItem {
...
}
?事前に
おかげで、
はい、しかし、scriptitemの3つの実装は、共通のスーパークラスEntityから継承する必要があります。共通のインタフェースだけではありません。(マップされたプロパティの参照型は、引き続きインターフェイスの型になります) – Affe