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

Hibernateでのテーブルレベルのロック

    「Select...for update」は、Hibernateで LockMode.UPGRADE これは、たとえば、 NamedQuery

    ただし、アプリケーション/手動のテーブル行ロックを使用すると、いくつかの欠点があり(特に、データベース接続がトランザクションの途中で切断された場合)、更新手順ではそれがなくても実行できます。

    • トランザクションを開始します。
    • update table set state ='PENDING'、server_id =1 where state ='IN PROGRESS';
    • トランザクションをコミットする
    • state='PENDING'およびserver_id=1であるテーブルから選択します;
    • [プロセスレコード]

    これが機能するには、各サーバーに一意の番号が必要ですが、エラーが発生しにくくなり、DBMSに、分離( ACID




    1. SQLServerで複数の行のテキストを単一のテキスト文字列に連結する方法

    2. mysqlでトリガーと手動挿入を使用せずに挿入時にGUIDを生成/自動インクリメントするにはどうすればよいですか?

    3. 500内部サーバーエラー?

    4. Hibernateによる自動インクリメント