2010-12-16 30 views

回答

7

是的。知道哪些任務必須是工作單位(交易)的人是服務,因爲它是「知道」業務的人。

+1

+1。事務性DAO而不是服務是一種不好的做法。 – Bozho 2010-12-16 12:04:07

2

Neuquino has the right answer,但它不是很清晰易懂,所以我會嘗試重組它:

在你需要一個交易,一個服務的方法,這就是爲什麼你@Transactional註解服務層,而不是DAO層。 (Spring @Transactional註釋的好處在於它獨立於底層實現,所以服務層通常不會有特定於您的持久層的代碼,例如沒有調用休眠模塊Session或JPA EntityManager)。當單元測試DAO時,將@Transactional註釋放在測試方法上(您的測試是服務,而不是DAO)。