Иерархия сущностей в Hibernate - PullRequest
1 голос
/ 26 июля 2011

Как правильно создать 2 объекта, где 1 является родителем другого?Например, у нас есть следующие 2 таблицы:

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

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

Довольно просто, у нас есть электронные письма, которые отправляются немедленно в EmailOutbox и электронные письма, которые отправляются в указанную дату в EmailOutboxSchedule.В идеале, это иерархия классов в Java, где EmailOutboxSchedule расширяется EmailOutbox.Тогда нам нужно только указать 1 дополнительное поле, dateToSend, и мы можем воспользоваться преимуществами типичных объектов иерархии объектов.Есть ли проблема с этим в спящем режиме?Нужно ли комментировать 2 объекта каким-либо особым образом?

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Возможно, вам нужно прочитать о Отображении наследования Hibernate .Однако, по логике вещей, я не покупаю, что график расширяет входящие.Больше похоже на то, что расписание - это свойство отдельных сообщений.Так может быть просто иметь свойство nullable date to send для одного объекта сообщения?

0 голосов
/ 26 июля 2011

Исходя из этого документа , решение, которое я вижу, состоит в том, чтобы использовать @MappedSuperclass для родительского класса Email_Outbox, а затем иметь два дочерних класса Scheduled_Email_Outbox и Immediate_Email_Outbox.

Immediate_Email_Outbox будет пустым, кромедля аннотации @Entity.

Пустой класс вряд ли элегантен, я признаю, но, похоже, он будет работать.(И гибернация, и элегантность все равно несовместимы.)

...