【问题标题】:Hibernate and Spring modify query Before Submitting to DBHibernate 和 Spring 在提交到数据库之前修改查询
【发布时间】:2015-02-05 05:25:48
【问题描述】:

我有一个配置为使用 Spring Data(@Repository)注释执行的 Hibernate 查询。 我想在提交到数据库之前捕获查询,当满足特定条件时,稍微修改一下。

这样做的最佳选择是什么?我更喜欢 JPA 解决方案而不是 Hibernate 解决方案, 但也可以使用 Hibernate 解决方案。

【问题讨论】:

  • 发布执行数据库操作的@Repository 代码。
  • 在你的 dao 层处理这个。您不需要“捕获”查询,而是在考虑特定条件的情况下构建它。

标签: sql hibernate jakarta-ee spring-data-jpa


【解决方案1】:

如果你想在prepared statement之后修改查询,你可以在Hibernate Interceptor中做,并在Spring DB Configuration的时候注册。

您的 MyInterceptor 应该实现 Hibernate Interceptor.class 或扩展 EmptyInterceptor.class。您正在寻找的方法是:

public String onPrepareStatement(String sql);

如果您需要更多内容,可以尝试使用事件侦听器,但我不确定是否有适合您的情况。

这里有一些文档:

Hibernate 4.0 Interceptors and events How to integrate an Interceptor with Spring

【讨论】:

猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-29
  • 2012-11-23
  • 2010-09-25
  • 1970-01-01
相关资源
最近更新 更多