我正在通过Hibernate Criteria API运行复杂查询。在调试期间,我希望能够提取和记录已绑定到条件对象的参数。使用Hibernate的org.Hibernate.type记录器不是一个选项,因为在服务器启动期间会运行许多查询并且记录器会导致严重的性能损失,并且由于我们使用的是Hibernate 3.5,因此无法对其进行配置仅在服务器启动时才在特定方法调用之前和之后打开。
至于获取SQL查询本身,in this answer有人发布了允许从标准中提取SQL的优秀代码,是否有类似的绑定参数解决方案?
答案 0 :(得分:2)
您可以记录标准,同时也会显示限制:
Criteria criteria = session.createCriteria(Post.class)
.add(Restrictions.eq("title", "post"));
LOGGER.info("Criteria: {}", criteria);
将显示:
Criteria: CriteriaImpl(com.vladmihalcea.book.hpjp.hibernate.association.AllAssociationTest$Post:this[][title=post])