0

この質問を拡張するeclipselinkが再起動するたびにallocationSize全体を消費するのはなぜですか? この問題の適切な解決策を知りたいのですが、その投稿の唯一の答えは、IDENTITY私が行った戦略への切り替えを示唆していますが、変更を確認できません。50の割り当てサイズはまだ有効です。すべてのテーブルからアクセスできる単一のシーケンスではなく、各エンティティ(テーブル)に基づいてシーケンシャル識別子(1、2、3)を生成する方法の例はありますか?

4

1 に答える 1

0

その目的のためにTableGeneratorアノテーションがあります。

@Entity
public class Employee {

    @Id
    @TableGenerator(name="TABLE_GEN", table="SEQUENCE_TABLE", pkColumnName="SEQ_NAME",
        valueColumnName="SEQ_COUNT", pkColumnValue="EMP_SEQ", allocationSize = 500, initialValue = 1)
    @GeneratedValue(strategy=GenerationType.TABLE, generator="TABLE_GEN")
    private long id;
    ...
}

@Entity
    public class PaySlip {

        @Id
        @TableGenerator(name="SECOND_TABLE_GEN", table="SECOND_SEQUENCE_TABLE", pkColumnName="SEQ_NAME",
            valueColumnName="SEQ_COUNT", pkColumnValue="SECOND_EMP_SEQ", allocationSize = 500, initialValue = 1)
        @GeneratedValue(strategy=GenerationType.TABLE, generator="SECOND_TABLE_GEN")
        private long id;
        ...
    }

すべての名前/*table*およびpkColumnValueフィールドの値が一意であることを確認してください。

参照

于 2012-05-26T21:22:13.083 に答える