私はなぜrooコマンドで新しいエンティティを作成するのかわかりませんが、常にファイル名のバージョンがあります。Spring Rooでファイルされたバージョンの平均は何ですか?
バージョンフィールドのメリットは何ですか?
もし私が望んでいなければ、エンティティにバージョンファイルを生成しないrooコマンドを書く方法。
私はなぜrooコマンドで新しいエンティティを作成するのかわかりませんが、常にファイル名のバージョンがあります。Spring Rooでファイルされたバージョンの平均は何ですか?
バージョンフィールドのメリットは何ですか?
もし私が望んでいなければ、エンティティにバージョンファイルを生成しないrooコマンドを書く方法。
フィールドは、これは楽観的ロックを作成するには、エンティティ・マネージャによって使用されjavax.persistence.Version @ でannotetedされます。
このシナリオを考えてみましょう: CDリストアプリがあります。
ユーザーは、CDデータでフォームを開いて変更することができます。 レコードをデータベースにロックすることはできず、(データベースの観点から)時間がかかるので、ユーザーがレコードを変更するのを待つことはできません(SELECT ... FOR UPDATEなど)。ほとんどの場合、データを読み取った後に接続が閉じられ、プールに戻されます。
代わりに、レコードを保存するとき、Entity Managerは、送信したものと同じ場合、データベースのバージョンフィールドをチェックします。そうであれば、安全に変更を保存してバージョンを1増やすことができます。画面上で編集中に誰かがレコードを変更した場合、データベースに保存されているバージョンはあなたのものより高くなり、他の人がすでにそれをしていたからです。 これは実際にはロックされています(他の人が行った場合は保存できません)。また、ほとんどの場合は変更されていないときにはデータベースを使用しない場合にのみ「ロック」するため、 〜する必要があります。
Muge、ありがとうございます。本、ウェブチュートリアルなど、もっと読むことをお勧めします – punny