Erstellen Sie einen benutzerdefinierten DB-Interceptor
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);
}
}
Konfigurieren Sie in der Spring Context-Datei den Interceptor für die Session-Factory:
<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>
Stellen Sie sicher, dass der benutzerdefinierte DB-Interceptor keine zyklische Abhängigkeit von der sessionFactory hat. Mit dem oben Gesagten werden alle Abfragen, die durch die Session-Factory ausgelöst werden, abgefangen, modifiziert und dann an onPrepareStatement
übergeben Methode.