2015-12-27 54 views
2

我正在通过Hibernate Criteria API运行一个复杂的查询。在调试过程中,我希望能够提取并记录已绑定到条件对象的参数。使用Hibernate的org.Hibernate.type记录器不是一个选项,因为在服务器启动过程中有许多运行的查询并且记录器导致严重的性能下降,而且当我们使用Hibernate 3.5时,它不能被配置为打开在具体方法调用之前和之后,仅在服务器启动时。如何从Hibernate Criteria对象中获取绑定参数?

只要获取SQL查询本身,in this answer有人发布了优秀的代码,允许从标准中提取SQL,是否有类似的绑定参数解决方案?

+0

调试器救援 – over9k

回答

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])