2010-12-16 3 views

答えて

7

はいです。ビジネスを「知っている」ため、どのタスクが作業単位(トランザクション)でなければならないかを知っているのがサービスです。

+1

+1。サービスの代わりにトランザクションDAOは悪い習慣です。 – Bozho

2

Neuquino has the right answerが、それは非常に明確で理解しやすいではありませんので、私はそれを修正してくださいしようとするでしょう:

あなたは通常、あなたが@Transactionalとサービス層に注釈を付ける理由は、一つのサービスメソッドのための1つのトランザクションではないしたいですDAO層。 (Spring @Transactionalアノテーションの素晴らしい点は、基本的な実装とは独立しているため、通常、永続化レイヤーに固有のサービスレイヤーにコードがないことです。たとえば、休止状態への呼び出しなし(SessionまたはJPA EntityManager)。 DAOを単体テストするときには、@Transactionalアノテーションをテストメソッドに入れます(テストはDAOではなくサービスです)。

関連する問題