0
にエンティティを「アップグレード」私は、入札者のオブジェクトがユーザーと作成した入札者テーブルの両方に、永続化されるときに1が別のは、基本クラスから子
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
private String login;
@Column(name = "password_hash",length = 60)
private String password;
}
と
@Entity
@Table(name = "bidder")
public class Bidder extends User {
@Column(length = 100, unique = true)
private String email;
}
から派生し2つのエンティティを持っています同じid値を持つレコード。
最初はシステムエンティティごとにユーザーエンティティを作成しますが、しばらくしてからユーザーはBidderに「アップグレード」する必要があります。
私はいくつかのエレガントな方法でユーザーを入札者に "アップグレード"する方法はありますか?
私はいくつかのアイデアがある -
- 同じIDの入札者テーブルにレコードを挿入し、そのユーザは
- は当初入札者エンティティ・オブジェクトを作成しておりますが、事は、すべての ユーザーが入札者することができない
- ユーザー
- へ 一対一relatioshipは、入札者の子クラスを作成しますが、 たのWiユーザーに入札者からのすべての入用のフィールドを追加しない必要がありますBidderInfoエンティティクラスを作成します最初に ユーザーを入札者に変換し、ユーザーのセマンティクスを損なうものがあります。
上記のアイデアは完璧な解決策のようには見えません。