直接从Spring Service bean而不是@Repository bean使用实体管理器是否有任何缺点
@Service
public class SomeService {
@PersistenceContext EntityManager em;
@Transactional(....)
public void doSomething(....)
{
// use entity manager here
}
}
Run Code Online (Sandbox Code Playgroud)
与
@Repository
public class SomeRepository {
@PersistenceContext EntityManager em;
public void doSomething(....)
{
// use entity manager here
}
}
Run Code Online (Sandbox Code Playgroud)
这是永恒的辩论之一,但它归结为你希望坚持的风格.在JEE6世界中,问题是:"我们应该将单独的EJB作为DAO,或者只是在我们的服务中使用EntityManager").我喜欢Adam Bien的"真实世界Java EE模式"的拇指规则:如果你发现自己制作的服务只是委托给repositiories,那么为自己节省一些复杂性,削减中间人并从你的服务中使用EntityManager.有人可能会说EntityManager是一种存储库.
至于可能的疑虑:
风格很重要,总是将服务与服务分开的人肯定有一个有效的观点.但你不能真正称之为"正确"或"不正确"的风格,它更多地出现在"我喜欢它"或"我不喜欢它"的范畴内.
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |