アノテーションを使用してHibernateマッピングを定義することを検討していますが、問題が発生しました。基本エンティティクラスを使用して共通フィールド(IDフィールドを含む)を定義したいのですが、異なるテーブルに異なるID生成戦略を持たせたいです。
@MappedSuperclass
public abstract class Base implements Serializable {
@Id
@Column(name="ID", nullable = false)
private Integer id;
public Integer getId(){return id;}
public void setId(Integer id){this.id = id;}
...
}
@Entity
@Table(name="TABLE_A")
public class TableA extends Base {
// Table_A wants to set an application-defined value for ID
...
}
@Entity
@Table(name="TABLE_B")
public class TableB extends Base {
// How do I specify @GeneratedValue(strategy = AUTO) for ID here?
...
}
これを行う方法はありますか?私は以下をに含めようとしましTableB
たが、休止状態は同じ列を2回持つことに反対し、それは間違っているようです。
@Override // So that we can set Generated strategy
@Id
@GeneratedValue(strategy = AUTO)
public Integer getId() {
return super.getId();
}