两个相关JPA实体之间的接口

场景如下(显示的表格)

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 

基本上是交付和渠道实体之间的一对一关系,但由于每个具体渠道(传真,电子邮件)都有不同的成员,我想在两个实体之间创建一个通用接口(通道),并将其用于@OneToOne关系。 在我看来这是一个简单的场景,你们很多人可能已经经历过,但我无法成功。 我试过把那个targetEntity的东西但没有用。 仍然说“交付引用一个未知的实体”

有任何想法吗? 提前致谢

使用Channelabstract超类和TABLE_PER_CLASSinheritance策略怎么样? 像这样的东西:

 @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; // ... }