sql >> データベース >  >> RDS >> Mysql

@TableGeneratorのinitialValueの要素はHibernateJPAでサポートされていませんか?

    最初の値が1001ではなく1になると、Hibernateのバグ HHH-4228 、ステータス修正されませんinitialValueであるため、この場合の正しい最初の値は1000ではなく1001です。 最後を格納する列を初期化します 返された値(次に返される値ではありません)。

    (バグレポートでも提案されているように)persistence.xmlで以下を使用すると、最初の値の問題が修正されます:

    <property name="hibernate.id.new_generator_mappings" value="true"/>
    

    allocationSizeの意味 問題は誤解されている可能性があります。インクリメントするステップではありません。これは、テーブルからの1つのデータベースクエリで割り当てられる値の数を意味します。これは、新しいエンティティにid値が必要になるたびに追加のクエリを回避するための最適化です。

    副次的な製品として、アプリケーションを再起動すると、シーケンスに穴が開くことがよくあります。

    1. initialValue =1000、allocationSize =100
    2. 値1001を使用します(=> valueColumnの値は1100に更新されます)。
    3. アプリケーションをシャットダウンして開始します
    4. 次の値は1002ではなく1101になります。



    1. MySQL挿入ステートメントキュー

    2. トランザクションスコープの使用とクエリ

    3. MySQLを使用してポリゴンのポイントのテーブルを検索します

    4. Laravel4移行の問題における外部キー