Spring-free Hibernate DAO和@Repository for Exception translation!这不是依赖吗?

时间:2013-02-10 13:10:57

标签: java spring hibernate dependencies dao

我已经读过创建Hibernate DAO的新方法是使用Hibernate上下文会话。主要原因是避免使用基于Spring的HibernateTemplate/HiberateDaoSupport,从而避免使用Spring-Free DAO。

当我搜索如何处理异常翻译时?它随处可写,我应该使用@Repository@Repository确实需要导入并在我的代码中创建依赖项。我是对的吗?

注释不是被认为是依赖吗?如果它们是,那么我是否可以使用XML?或者我应该使用旧的HibernateDaoSupport方式,因为我打算将我的代码与Spring结合使用?

更新

发现了一个类似的问题:“integrate hibernate with spring without spring dependency in dao”但是:

  • @pap给出的答案的第一段没有为@Repository指定任何明确的XML替代。
  • 在其余答案中提供的见解是合理的,但我的问题仍然没有答案如果解耦不是一个问题,为什么Spring会尝试提出新的Hibernate DAO方法? / LI>

P.S。这不是批评。这是尝试学习正确思考这个主题的方法(即依赖)。

1 个答案:

答案 0 :(得分:1)

首先,Spring异常转换的重点是通过创建对Spring的依赖来打破对Hibernate的依赖。无论注释如何,Spring异常转换都会捕获Hibernate异常并将其转换为Spring异常。通过将catch语句放在与Spring异常相关联的代码中,您可以将代码添加到Spring,而不是添加任何@Repository注释。如果您不想依赖Spring,那么只需直接使用Hibernate异常即可。基本上,有两种方法:

  1. 将Hibernate用于异常和上下文会话(不与Spring耦合)。在这种情况下,根本不要使用Spring异常翻译。
  2. 使用Spring进行异常和会话处理(与Hibernate的耦合更松散,与Spring的额外耦合)。