0
私は楽観的なロックを使用しようとしています。 バージョンの列をテーブルに追加しています既存のデータのバージョン列にデフォルト値を設定するにはどうすればよいのですか?これはエンティティで十分ですか?既存のデータのデフォルト値をバージョン列に設定するにはどうすればよいですか?
@Version
@Column(name = "VERSION")
private Long version = 0L;
私は楽観的なロックを使用しようとしています。 バージョンの列をテーブルに追加しています既存のデータのバージョン列にデフォルト値を設定するにはどうすればよいのですか?これはエンティティで十分ですか?既存のデータのデフォルト値をバージョン列に設定するにはどうすればよいですか?
@Version
@Column(name = "VERSION")
private Long version = 0L;
データベースでこれを行うのが最も簡単な方法です。以下のようなもの:あなたはとにかくバージョン列を追加する必要があります。もちろん、
alter table MyEntity add column version INT(11); //no not null constraint here!
をして、ちょうどすべてのエンティティへの最初の値を追加します。
update MyEntity set 'version' = 1;
今あなたにも追加することができますnullでない制約
alter table MyEntity modify version INT(11) NOT NULL;
(I expe ctでは、バージョンの列を追加している間にアプリケーションを停止します)。
これはあなたの質問です:*シナリオ*データベースに(バージョン列なしで)既存のエンティティがいくつかあり、今度はオプティミスティックロックを追加します。 *質問:*既存のエンティティにバージョン値を追加する方法 – Ralph
はい、そうです@Ralph – Ganesh