0

私の小さなプロジェクトでは、4 つのテーブルを作成します。このテーブルの 2 つは 1 対 1 の関係があります。

@Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) @SuppressWarnings("serial") public class Creation implements Serializable {
@TableGenerator(name="tabgen1",table="cID",allocationSize=1,pkColumnName="ColumnName",pkColumnValue="ColVal",valueColumnName="valCOLName")
@GeneratedValue(strategy= GenerationType.AUTO,generator="tabgen1")
@Id
    private Long UserId;

そして2番目のエンティティは

@Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) public class Worker implements Serializable {

@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Creation creation;

@Id
@TableGenerator(name="tabgen2",table="WID",allocationSize=1)
@GeneratedValue(strategy= GenerationType.AUTO,generator="tabgen2")
private Long WorkerId;

そしてそれはより多くのテーブルを作成します....しかし、私は4つのテーブルの1つで安全に生成されたwaluesが欲しいのですが、それは本物ですか、それとも間違いを犯しますか?

4

1 に答える 1

1

質問を理解しているかどうかはわかりませんが、AUTOgeneratorを同時に指定するのは非論理的です。AUTOORM が最も適切と判断した生成戦略を選択する必要があることを意味します。そしてジェネレーターは、特定のジェネレーターを使用するように強制します。だから、それらは矛盾しています。

TABLEテーブル ジェネレーターを使用して ID を生成するため、の代わりに使用AUTOします。

于 2013-06-01T15:21:38.443 に答える