Tạo một công cụ đánh chặn DB tùy chỉnh
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);
}
}
Trong tệp ngữ cảnh mùa xuân, hãy định cấu hình Bộ chặn cho nhà máy phiên:
<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>
Đảm bảo Bộ đánh chặn DB tùy chỉnh không có sự phụ thuộc theo chu kỳ vào sessionFactory. Với những điều trên, tất cả các truy vấn được kích hoạt thông qua nhà máy phiên, được chặn, sửa đổi và sau đó được chuyển đến onPrepareStatement
phương pháp.