2016-09-15 10 views
0

私は楽観的なロックを使用しようとしています。 バージョンの列をテーブルに追加しています既存のデータのバージョン列にデフォルト値を設定するにはどうすればよいのですか?これはエンティティで十分ですか?既存のデータのデフォルト値をバージョン列に設定するにはどうすればよいですか?

@Version 
@Column(name = "VERSION") 
private Long version = 0L; 
+0

これはあなたの質問です:*シナリオ*データベースに(バージョン列なしで)既存のエンティティがいくつかあり、今度はオプティミスティックロックを追加します。 *質問:*既存のエンティティにバージョン値を追加する方法 – Ralph

+0

はい、そうです@Ralph – Ganesh

答えて

0

データベースでこれを行うのが最も簡単な方法です。以下のようなもの:あなたはとにかくバージョン列を追加する必要があります。もちろん、

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では、バージョンの列を追加している間にアプリケーションを停止します)。

関連する問題