尝试在运行时向我的Web应用程序中的所有MySQL Select查询添加注释。
例如,代码中的原始查询如下所示:
select a,b,c from ......
select x,y from...
所有这些都需要 在运行时 修改为:
select a,b,c /*Comment*/ from ...
select x,y /*Comment*/ from ...
该应用程序在Hibernate
4.2.1上运行。我能想到的唯一解决方案是扩展org.hibernate.dialect.MySQLDialect
并在/*Comment*/
中添加CustomMySQLDialect
。
对于为实现此目的而修改的方法有些困惑。希望任何朝着正确方向的指针。
可以重写transformSelectString(java.lang.String)
in方法org.hibernate.dialect.Dialect
来做到这一点吗?
编辑1:自定义MySQL方言中的transformSelectString不适用于运行时SQL修改
创建一个自定义数据库拦截器
package com.felix.dao.interceptor;
import org.hibernate.EmptyInterceptor;
public class CustomDBInterceptor extends EmptyInterceptor {
@Override
public String onPrepareStatement(String sql) {
String commentStr = "/*Comment*/"
return super.onPrepareStatement(commentStr+sql);
}
}
在Spring Context文件中,为会话工厂配置拦截器:
<bean id="customDBInterceptor" class="com.felix.dao.interceptor.CustomDBInterceptor"/>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="datasource" />
<property name="entityInterceptor">
<ref bean="customDBInterceptor"/>
</property>
...
</bean>
确保自定义数据库拦截器对sessionFactory没有周期性的依赖关系。通过以上操作,将拦截通过会话工厂触发的所有查询,进行修改,然后将其传递给该onPrepareStatement
方法。
问题内容: 我想要一个jQuery进度栏,该进度栏会根据服务器端请求的状态进行更新。我基于本教程编写此代码,但它使用文件上传器作为基础(与此问题相同)。没有文件上传器,我无法使其工作完全相同。问题是进度条仅在process.php完成后才更新。它等待整个过程完成,而不是异步请求进度更新。我只看到数据:数据警报一次。 有任何想法吗? 网页: Process.php-提交表单时调用 javascrip
我正在使用React,使用NodeJS将数据发送到我的PostgreSQL数据库。我的songs表中有一个外键,它引用了albums表中的id。我的问题是,如何将我第一次插入的id返回到第二次插入的相册中?以下是我目前的代码: 我还没有将专辑id添加到我的歌曲插入中。我在等着看如何把唱片id的值输入到我的第二个插页中?
问题内容: 我有有不同的数据类型一样创建625列的SQL Server表,,,等… 现在对将所有列的数据类型更改为感兴趣。是否有一个SQL Server查询可以一次更改一个表中所有列的数据类型,而不是一个一个地对所有列执行下面的查询? 期待您的回应。 问题答案: 没有一个单独的“魔术”项目符号可以执行此操作-这是非常不寻常的操作,因此它本身不受支持。 您可以做的是从系统目录视图中遍历表的列,动态创
本文向大家介绍RowBounds 是一次性查询全部结果吗?为什么?相关面试题,主要包含被问及RowBounds 是一次性查询全部结果吗?为什么?时的应答技巧和注意事项,需要的朋友参考一下 RowBounds 表面是在“所有”数据中检索数据,其实并非是一次性查询出所有数据,因为 MyBatis 是对 jdbc 的封装,在 jdbc 驱动中有一个 Fetch Size 的配置,它规定了每次最多从数据库
我正在对PeopleSoft数据库进行查询,不确定是否可以根据初始查询在一次调用中从同一个表中获取信息。例如,我正在访问的表返回EmployeeID、FullName、FirstName、LastName、Position\u NBR和ReportsTo。但是ReportsTo是以经理的Position\u NBR(在同一个表中找到)的形式提供的,我想以name格式提供。我想这样做,但不确定是否可
如何在下面的本机搜索查询中添加查询超时?