1

我读过创建 Hibernate DAO 的新方法是使用 Hibernate 上下文会话。主要原因是避免使用基于HibernateTemplate/HiberateDaoSupportSpring 的无 Spring DAO。

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

注释不被认为是依赖关系吗?如果是的话,无论如何我可以使用 XML 来实现吗?或者我应该使用旧HibernateDaoSupport方法,因为无论如何我都要将我的代码与 Spring 结合起来?

更新

发现了一个类似的问题:“在 dao 中集成 hibernate 和 spring 而没有 spring 依赖”但是:

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

PS这不是批评。而是尝试学习思考这个主题的正确方式(即依赖关系)。

4

1 回答 1

1

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

  1. 将 Hibernate 用于异常和上下文会话(不与 Spring 耦合)。在这种情况下,根本不使用 Spring 异常翻译。
  2. 使用 Spring 进行异常和会话处理(与 Hibernate 的松散耦合,与 Spring 的额外耦合)。
于 2013-02-11T15:07:59.070 回答