grailsのコントローラアクションは、デフォルトでトランザクションですか?コントローラ内のコードの実行中に特定のポイントで変更を元に戻す最善の方法は何ですか?Grailsのコントローラはデフォルトでトランザクション処理されますか?
答えて
最近の3.1.xバージョンを除くすべてのサービスを除いて、Grailsのほとんどのトランザクションはデフォルトでトランザクションされません。古いバージョンでは、トランザクションの振舞いに対して何も設定されていない場合、トランザクションプロキシが適用されるため、すべてのパブリックメソッドはトランザクションになります。 static transactional = false
で無効にしたり、@Transactional
アノテーションでトランザクションの動作をカスタマイズしたりできます。サービスでは@Transactional
の注釈を使用することはできますが(そしてそうするべきです)、自動トランザクション性を無効にする必要はありません。
生成されたコントローラとサービスには@Transactional
アノテーションが含まれていますが、それはあなた自身で追加する作業を保存するための簡単な方法です。
コントローラは、コントローラに混乱したコードがたくさん残ってしまうので、トランザクション作業を行うには悪い場所ですが、懸念事項を分けて、コードを置くことが重要です(例えば、GSP、ドメインプロパティ、ドメインクラスの制約、トランザクションデータベース書き込み、サービス内のビジネスロジックなど)を提供します。
リクエストパラメータのデータバインディングとルーティングロジックをコントローラに残し、トランザクションごとに明示的にコンフィグレーションされたサービスに永続性とビジネスロジックを移動するかどうかは、クラスやメソッドごとに必要なものに応じて、コントローラがサービスや他のヘルパーを呼び出させるようにします。
このアプローチでは、コードをよりメンテナンス可能にするだけでなく、メソッドやクラスがより簡単で集中的になるため、すべてを適切にテストすることも容易になります。
- 1. コントローラのGrailsエラー処理
- 2. Grailsコントローラでの例外処理
- 3. PostgreSQLの関数はトランザクション処理されていますか?
- 4. 同時トランザクションはどのように処理されますか?
- 5. CrudRepository .delete()メソッドはトランザクション処理されていますか?
- 6. Java EE 6 CDIイベントはトランザクション処理されますか?
- 7. Groovy Grailsがコントローラのパラメータを処理します
- 8. ACHトランザクション処理
- 9. トランザクション処理のマルチティアアプリケーション
- 10. ステージ3コミット処理中にトランザクションがロールバックされたのはなぜですか?
- 11. Java:トランザクション処理システム
- 12. Alexa lambda関数の処理がデフォルトで未処理ですか?
- 13. バネ統合のトランザクション処理
- 14. mule:バッチ処理のトランザクション
- 15. トランザクション処理のDBMSコンポーネント
- 16. WLS - トランザクションの処理方法
- 17. トランザクション処理:いつロールバックが行われますか?
- 18. MySQLトランザクション - オークション入札INSERTがキュー内で処理されましたか?
- 19. Entity Frameworkはどのようにトランザクションを処理しますか?
- 20. EF5 DbContext.SaveChangesはトランザクションのコミットとロールバックを処理しますか?
- 21. Webサービスは順次処理されるか並列処理されますか?
- 22. WM_ENABLEデフォルト処理
- 23. ストライプでのトランザクションのバッチ処理
- 24. Node.jsのロールバックされたMySQLトランザクションの処理
- 25. Laravelでトランザクションを処理する方法
- 26. オブジェクトのイベント処理はどのスレッドで処理されますか?
- 27. Webアプリケーションでのトランザクション処理シナリオシミュレーション
- 28. Gitは引き出し時にトランザクションを処理しますか?
- 29. は、Grailsのトランザクション(MyBatisの)
- 30. javaでJpaTemplateを使用してトランザクションを処理しますか?