ドメイン/サービス層とDao層にこの@Transactional
アノテーションを使用することの違いは何ですか?ドメイン層で使用することで利点が得られますか?@ Springのレイヤー間のトランザクション注釈
答えて
@Transactional
annotationは、取引の範囲を指定します。
DAOレイヤーで使用する場合、各DAO操作がトランザクション内でコミットされるように指定しています。
各サービス操作(ビジネスユニット)がトランザクションでコミットされることをサービスで使用する場合は、通常はサービスメソッドがビジネスユニットを表しているため、同じトランザクションに含める必要がありますビジネスユニット全体をバックアップします。
@Transactional
は、データベースおよび/またはビジネストランザクションのスコープを識別するために必要なロジックを管理するため、サービスレイヤで使用することをお勧めします。パーシスタンス層は、トランザクションの範囲を意識することはありません。
DAOは他のBeanと同じように@Transactional
とすることができますが、サービス層で使用するのが一般的です。我々はの関心事を分離したいので、これを行う傾向があります。永続性レイヤーは、データベースから前後にデータを取得/格納するだけです。
たとえば、ある口座から別の口座に金額を振り替える場合は、2つの操作が必要です.1つの口座から引き落とし、他の口座に振り込む必要があります。したがって、これらの操作の範囲は、サービス層でのみ認識され、永続層では認識されません。
パーシスタンス層は、それがどのトランザクションに含まれているかを知ることができません。たとえば、メソッドperson.updateUsername()
を取ります。それはそれ自身の別々のトランザクションで実行する必要がありますか?それを呼び出すビジネスロジックに依存しています。ここで
@Transactionalをお読みください:考慮するために2つの別々の概念がありますが、それ自身のスコープとライフサイクルを持つ各:永続コンテキスト、データベースのトランザクション データベースのトラクションには多くのものがあります:
@Transactionalアノテーション自体は、単一のデータベーストランザクションのスコープを定義しますに。データベーストランザクションは、永続コンテキストの範囲内で発生します。
永続コンテキストはJPA EntityManagerにあり、内部的にはHibernateセッションを使用して実装されています
- 1. Spring mvc注釈検証のカスタム注釈
- 2. @ Springブートでの統合テストのトランザクション注釈
- 3. Spring JMS - 注釈を使用した宣言的トランザクション管理
- 4. サービスでのSpringトランザクションとDAOレイヤー
- 5. テストSpring MVCの注釈mapppings
- 6. Springスコープの注釈値
- 7. Spring MVCの@Named注釈
- 8. Spring @autowired注釈の例
- 9. Spring MVCの注釈@ModelAttribute
- 10. トランザクションの注釈またはxxx
- 11. 注釈@ springとhibernateプロジェクトのsave opeartionにトランザクションが適用されません
- 12. Springブート永続コンテキスト注釈
- 13. Spring MVC注釈付きコントローラ
- 14. 注釈付きSpring HandlerInterceptorマッピング
- 15. Java Spring - 注釈設定クラス
- 16. thymeleaf css Spring MVC注釈
- 17. Spring + Vaadin注釈@Autowired in UI
- 18. 注釈ベースの設定のSpring Mongo DB
- 19. カスタム注釈のSpring REST検証
- 20. @Asyn注釈とSpringの使用
- 21. 注釈のないSpring MVC 3.1?
- 22. Spring - AOP - 注釈コードの生成
- 23. 良いSpring 3.1の注釈チュートリアル
- 24. Spring AOP注釈付きフィールドのポイントカット式
- 25. 注釈のSpring MVC isFormSubmission()は同等ですか? Spring MVCので
- 26. Spring MVCのリターンカスタムHTTPステータスコード(エラーなし)Spring MVCの@RequestMapping注釈で
- 27. @トランザクションの注釈は私のクラスを代理しません
- 28. Springでカスタム注釈を実装する
- 29. Spring @ContextConfiguration注釈、TestNGおよびIDEA
- 30. Springブート - カスタムフィルタ/ステートレス認証と@Secured注釈
ありがとうございます。しかし、私はロールバックのためにこの注釈を使用しています。私はドメインとDaoの層でこの注釈の使用法を明確に理解したい。 @Transactionalアノテーションを使用するメリットとデメリットも知りたい –