私には2つのエンティティがあります。たとえば、ClientとCompany (両方ともUserのサブクラス)です。
それぞれにイベントのリストがあります:ClientEventsとCompanyEvents
(イベントテーブルではなく)最初にこれらのテーブルを分割した理由は、各種類のイベントが混在しないためです(一度に操作できるのは1種類のイベントのみです)。また、1つの大きなテーブルではなく、2つの小さなテーブルが作成されます。
- それは良い方法ですか?(大きなテーブルデータ量〜1M)
たぶん、それらのテーブルを2つに分割して、継承を使用する必要はありませんか? - それをエンティティとしてモデル化するための最良の方法は何でしょうか?
両方のタイプのエンティティの属性と操作は同一であるため、次のようにモデル化できます。
@MappedSuperclass
public abstract class **Event** {...}
@Entity @Table(name="client_event")
public class **ClientEvent** {...}
@Entity @Table(name="company_event")
public class **CompanyEvent** {...}
DAOでメソッドを複製せずに特定のイベントの各タイプをクエリする方法はありますか(休止状態またはJPAを使用します。ここではジェネリックスが役立つ可能性があります)。
3.データベーステーブルとエンティティをモデル化するために、このような状況(2つの別個の存在であるが、属性と操作は同一)に「経験則」がありますか?