1

1つが他の親である2つのエンティティを作成する適切な方法は何ですか?たとえば、次の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では、単一のメッセージエンティティにnull許容プロパティがあるだけでしょうか?

于 2011-07-26T07:17:43.243 に答える
1

このドキュメントを見ると、親クラスのEmail_Outboxに@MappedSuperclassを使用してから、Scheduled_Email_OutboxとImmediate_Email_Outboxの2つの子クラスを作成することが解決策です。

@Entityアノテーションを除いて、Immediate_Email_Outboxは空になります。

空のクラスはほとんどエレガントではないことは認めますが、うまくいくようです。(そして、休止状態とエレガンスはとにかく互換性がありません。)

于 2011-07-26T16:09:19.690 に答える