@Configuration
public class HibernateConfiguration extends HibernateJpaAutoConfiguration {
private HibernateStatisticsInterceptor hibernateStatisticsInterceptor;
public HibernateConfiguration(DataSource dataSource, JpaProperties jpaProperties, ObjectProvider<JtaTransactionManager> jtaTransactionManager, ObjectProvider<TransactionManagerCustomizers> transactionManagerCustomizers, ObjectProvider<List<SchemaManagementProvider>> providers, HibernateStatisticsInterceptor hibernateStatisticsInterceptor) {
super(dataSource, jpaProperties, jtaTransactionManager, transactionManagerCustomizers, providers);
this.hibernateStatisticsInterceptor = hibernateStatisticsInterceptor;
}
@Override
protected void customizeVendorProperties(Map<String, Object> vendorProperties) {
vendorProperties.put("hibernate.session_factory.interceptor", hibernateStatisticsInterceptor);
}
}
@Component("hibernateStatisticsInterceptor")
public class HibernateStatisticsInterceptor extends EmptyInterceptor {
private static final long serialVersionUID = 5278832720227796822L;
private ThreadLocal<Long> queryCount = new ThreadLocal<>();
public void startCounter() {
queryCount.set(0l);
}
public Long getQueryCount() {
return queryCount.get();
}
public void clearCounter() {
queryCount.remove();
}
@Override
public String onPrepareStatement(String sql) {
Long count = queryCount.get();
if (count != null) {
queryCount.set(count + 1);
}
return super.onPrepareStatement(sql);
}
}
谢谢你的提示
问候Rizzi
你好,
请阅读:https://github.com/spring-projects/spring-boot/commit/59D5Ed58428D8CB6C6D9FB723D0E334FE3E7D9BE(使用:HibernatePropertiesCustomizer接口)
问题内容: 我尝试了一些来自hibernate 4.0拦截器的 代码,该代码为使用会话级拦截器提供了以下代码: 但是,我同时检查了hibernate-core 4.0源代码和onliehibernate 4.0 java- doc ,该类没有方法,但是hibernate 3.6 java- doc确实具有此方法。 有人知道该方法移到哪里吗?如果已弃用,为什么文档仍将其保留在教程文档中?在4.0中如
问题内容: 在Spring Boot应用程序中添加HttpRequest拦截器的正确方法是什么?我想做的是记录每个HTTP请求的请求和响应。 我发现了一些有关如何对较早版本的spring进行相同操作的Web示例,但这些示例与applicationcontext.xml一起使用。请帮忙。 问题答案: 由于你使用的是Spring Boot,因此我假设你希望在可能的情况下依靠Spring的自动配置。要添
我找到了一些关于如何使用spring旧版本执行相同操作的web示例,但这些示例适用于ApplicationContext.xml。请帮帮忙。
我正在开发一个使用Apache Camel Routes来处理请求的应用程序。我想给每条路由添加缓存。因此,如果请求的数据已经在缓存中,我们不需要在路由中执行处理,否则将执行路由逻辑。 我想知道我们如何透明地为每条路由添加缓存。我最初想到的是在路由开始时添加对缓存内容的检查,并根据结果继续。另外,在路由结束时将路由响应添加到缓存中。但是,我认为这种方法使缓存逻辑与路由逻辑相结合。但是,我们仍然知道
我使用Spring Boot v2.0.3和Hibernate 5.2。我想创建一个Hibernate拦截器,在我的一个实体字段中生成一个值,基于我数据库中的一个唯一数字,然后保存。 我获取了一些在线资源,并最终扩展了Hibernate空拦截器,以覆盖onSave方法。 在我的申请中。yml配置文件,我添加了以下键: 当我尝试保存票证时,我可以看到方法onSave被正确调用,但是由于拦截器完全由H
拦截驱动器 bp GetDriveTypeA 获取磁盘驱动器类型 bp GetLogicalDrives 获取逻辑驱动器符号 bp GetLogicalDriveStringsA 获取当前所有逻辑驱动器的根驱动器路径