JPA hibernate单表多重继承/鉴别器

时间:2014-10-14 11:26:41

标签: java hibernate jpa

我需要存储在同一个表中收到和发送的电子邮件。 任何outEmail都可以再次发送,inEmail则不能。我希望这些对象能够以这种方式打扮,因此在服务层中更难以犯这个错误。

那,并且某些电子邮件中有某些与之相关的行为。层次结构ID如下:

电子邮件 - > outEmail - > customerOut

电子邮件 - > inEmail - > customerIn,supplierIn

所以outEmail对象是唯一可以再次发送的对象。 我以为我会这样试试:

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="direction")
@Table(name="email")
public abstract class Email{

}

inEmail:

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="role")
@DiscriminatorValue("IN")
public abstract class InEmail extends Email {

}

customerIn:

@Entity
@DiscriminatorValue("CUSTOMER")
public class customerIn extends InEmail {

}

在customerIn,它使用inEmail中的鉴别器值。我正在尝试做什么,或者我需要替代方案吗?

0 个答案:

没有答案