1

创建 2 个实体的正确方法是什么,其中 1 个是另一个实体的父级?例如,我们有以下 2 个表:

Email_Outbox
------------
Id
Email_Id
Date_Sent

Email_Outbox_Schedule
---------------------
Id
Email_Id
Date_Sent
Date_to_Send

很简单,我们有立即发送的EmailOutbox电子邮件和在指定日期发送的电子邮件EmailOutboxSchedule。所以理想情况下,这是 Java 中的类层次结构,其中EmailOutboxScheduleextends EmailOutbox。然后我们只需要指定 1 个额外的字段,dateToSend,就可以利用典型的对象层次特征。用hibernate做这个有问题吗?我是否需要以任何特殊方式注释 2 个实体?

4

2 回答 2

2

您可能需要阅读有关Hibernate 继承映射的信息。但是,从逻辑上讲,我不认为日程安排会扩展收件箱。听起来时间表更像是单个消息的属性。那么可能只是date to send在单个消息实体上具有可为空的属性吗?

于 2011-07-26T07:17:43.243 回答
1

按照这个文档,我看到的解决方案是将@MappedSuperclass用于父类Email_Outbox,然后有两个子类Scheduled_Email_Outbox 和Immediate_Email_Outbox。

Immediate_Email_Outbox 将为空,除了 @Entity 注释。

我承认,一个空的班级并不优雅,但它似乎可以工作。(无论如何,hibernate 和优雅有些不相容。)

于 2011-07-26T16:09:19.690 回答