SINGLE_TABLE 継承 startegy を使用して、usres をマップします (以下のコード例を参照)。
UnActiveRegularUserとUnActiveBusinessUserを「ACTIVE_USERS」テーブルから別のテーブル ( 「UNACTIVE_USERS」など)にマップし、継承を維持する方法はありますか?
ノート:
- ここでのポイントは、ex 間のコードの重複を避けることです。RegularUser 対 UnActiveRegularUser (同じプロパティを使用するため) ですが、「ACTIVE_USERS」と「UNACTIVE_USERS」の 2 つの異なるテーブルにマップします。
-strategy = InheritanceType.SINGLE_TABLE は変更しないでください。
-別の抽象化レイヤーを追加すると、この問題を解決できますか?
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "ACTIVE_USERS")
public class User {
@Id @GeneratedValue
protected Long id;
@Column(nullable = false)
protected String name;
}
@Entity
public class RegularUser extends User{
//more getters and settres
}
@Entity
public class UnActiveRegularUser extends User{
//same getters and setters as in RegularUser
}
@Entity
public class BusinessUser extends User {
//more getters and settres
}
@Entity
public class UnActiveBusinessUser extends User {
//same getters and setters as in BusinessUser
}
ありがとう、ネイサン