java - 无 Spring Hibernate DAO 和 @Repository 用于异常翻译!这不是依赖吗?

标签 java spring hibernate dependencies dao

我读到创建 Hibernate DAO 的新方法是使用 Hibernate 上下文 session 。主要原因是避免使用基于 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 的新方法?

附注这不是批评。相反,这是一种学习思考该主题的正确方法(即依赖关系)的尝试。

最佳答案

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

  1. 使用 Hibernate 处理异常和上下文 session (不与 Spring 耦合)。在这种情况下,根本不使用 Spring 异常转换。
  2. 使用 Spring 进行异常和 session 处理(与 Hibernate 松散耦合,与 Spring 附加耦合)。

关于java - 无 Spring Hibernate DAO 和 @Repository 用于异常翻译!这不是依赖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14798071/

相关文章:

java - oracle.net.ns.NetException : Socket read timed out

java - 使用 JAXB 忽略根元素

java - Spring Data JPA 与 QueryDSL、聚合函数的计数问题

java - 在不使用 Maven 的情况下,我在哪里可以下载 Spring Framework jar?

java - hibernate - 批量更新从更新 : 0 actual row count: 0 expected: 1 返回了意外的行数

java - Hibernate Query.executeUpdate 是做什么的?

java - AppEngine 在尝试连接到 Google Cloud MySql 实例时出现 "Communication link failure"错误

java - 将多个 SSL 证书固定添加到 Android KeyStore 不起作用。 (来自资源文件)

java - AlertDialog 中的文本颜色未更改

oracle 限制为 1000/hibernate