roo コマンドで新しいエンティティを作成する理由がわかりません。常にファイル名のバージョンがあります。
バージョン フィールドの利点は何ですか?
欲しくない場合は実体にバージョンファイルを生成しないrooコマンドの書き方。
roo コマンドで新しいエンティティを作成する理由がわかりません。常にファイル名のバージョンがあります。
バージョン フィールドの利点は何ですか?
欲しくない場合は実体にバージョンファイルを生成しないrooコマンドの書き方。
このフィールドには @javax.persistence.Version の注釈が付けられます。これは、楽観的ロックを作成するためにエンティティ マネージャによって使用されます。
このシナリオを考えてみましょう: CD リスト アプリがあります。
ユーザーは、CD データを含むフォームを開き、変更することができます。(データベースの観点から)時間がかかりすぎるため、データベース内のレコードをロックして、ユーザーがレコードを変更するかどうかを待つことはできません(たとえば、SELECT ... FOR UPDATEを使用)。ほとんどの場合、データの読み取り後に接続が閉じられ、プールに返されます。
代わりに、レコードを保存するときに、送信したものと同じかどうか、エンティティ マネージャーがデータベースのバージョン フィールドをチェックします。そうであれば、変更を安全に保存してバージョンを 1 増やすことができます。画面でレコードを編集しているときに誰かがレコードを変更した場合、データベースに保存されているバージョンはあなたのバージョンよりも高く、データを保存することはできません。相手がすでにやったからです。これは実際にはロックされており(他の誰かが保存した場合は保存できません)、楽観的です。ほとんどの場合そうではない変更がある場合にのみ「ロック」し、そうでない場合はデータベースを使用しないためです。した方が良い。