Hibernate、Spring、GWTアプリケーションがあります。Employeeとuserの2つのテーブルがあります。
すべてのユーザーは従業員であるため、データベースに1対1の関係があり(主キーによって結合されています)、ユーザーはEmployeeを拡張します。最初にユーザーを挿入すると問題なく動作し、親が正しく自動的に挿入されます。ただし、問題は、既存の従業員のユーザーエントリを追加しようとすると、親IDを使用してユーザーレコードを挿入する代わりに、従業員レコードとユーザーレコードが再作成されることです。
@javax.persistence.Entity
@javax.persistence.Table(name = "User")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name="Id")
public class User extends Employee
{ .... }
@Reflectable(assignableClasses = true, superClasses = true)
@javax.persistence.Entity
@javax.persistence.Table(name = "Employee")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name="Id")
public class Employee
{
@Id
@GeneratedValue
@Column(name="Id")
public Integer getId()
{
return id;
}
}
これは物事を行うための正しい方法ですか?どうすればこれを克服できますか?
どうもありがとうございます。
アップデート1:
これにユーザーを追加するということは、従業員と同じIDを持つユーザーを作成したいということです。これは基本的に次のようになります。
Insert into User (Id, username,..) Values (1, "Username", ...)