1

Grails と Goovy は初めてです。Grails Framework のドキュメント と楽観的ロックと悲観的ロックに関する議論を確認しました。

ドキュメントから明らかなことは次のとおりです。

  • Grails はデフォルトで楽観的ロックを使用します。

  • 楽観的ロックはオフにできます (version=false を使用)

  • 楽観的ロックをオフにして、同時更新が発生したときにデータが失われることを気にする場合は、(lock() メソッドを使用して) 悲観的ロックを有効にする必要があります。

私の質問:

  • 3つのモードがあるようです。明示的に名前が付けられた 2 つ: 楽観的および悲観的で、もう 1 つは暗示的 - 楽観的をオーバーライドしたが、悲観的を有効にしていない場合。これは正しいです?

  • 正しければ、この「中間」状態は何と呼ばれ、これの正当な用途はありますか? (尋ねる理由は、私が誰かのコードをレビューしていて、この「中間」状態の使用がたくさんあり、彼らが尋ねることができず、文書化していないなどです....)。

4

2 に答える 2

1

バージョン管理をオフにすると、基本的にロック チェックがオフになると思います。したがって、3 番目の状態は基本的にバージョン管理なしになります => すべての書き込みが行われ、競合は検出されません。

「プログラミングGrails」のHibernateの章から -

Grails は、すべてのドメイン クラスに対して楽観的ロックを有効にするようにデフォルト設定されており、一般にこれを変更するべきではありません。ただし、必要に応じて、たとえば、レガシー データベースにマッピングする場合や、更新されていないため同時編集のリスクがないテーブルの場合は、バージョン false で無効にすることができます。

于 2013-04-02T15:01:18.953 に答える