【问题标题】:How to get bound parameters out of a Hibernate Criteria object?如何从 Hibernate Criteria 对象中获取绑定参数?
【发布时间】:2026-01-24 18:25:02
【问题描述】:

我正在通过 Hibernate Criteria API 运行一个复杂的查询。在调试期间,我希望能够提取并记录已绑定到标准对象的参数。使用 Hibernate 的 org.Hibernate.type 记录器不是一个选项,因为在服务器启动期间运行了许多查询并且记录器会导致严重的性能损失,并且由于我们使用的是 Hibernate 3.5,因此无法将其配置为打开特定方法调用前后,仅在服务器启动时。

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

【问题讨论】:

  • 救援调试器

标签: java sql hibernate criteria hibernate-criteria


【解决方案1】:

您可以记录条件,也会显示限制:

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

【讨论】: