java - 从 Criteria 获取 SQL

标签 java hibernate

我正在使用 hibnernate,并且我有一段代码,例如:

    Criteria criteria = getCurrentSession().createCriteria(objectClass);
    criteria.add(Restrictions.isNull("myFields"));
    System.out.println("SQL: " + criteria.getSQL()); <-- How can I do this?
    return criteria.list();

我想将 SQL(或 HQL)打印到控制台,以进行调试,但我找不到任何方法来获取此类信息。

我已经在 stackoverflow 上看到了很多答案,例如 thisthis但这些都是老问题了,我没有找到任何有用的答案。

有人可以帮助我吗?谢谢

最佳答案

最简单的方法是编辑 Hibernate 配置。

您可以设置

hibernate.show_sql = true

启用将所有生成的 SQL 语句记录到控制台的功能。

此外您还可以设置

hibernate.format_sql = true
hibernate.use_sql_comments = true

使其更具可读性

了解有关 Hibernate 配置的更多信息 here

关于java - 从 Criteria 获取 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43938152/

相关文章:

java - 基本类型 map 的 Hibernate 标准

java - hibernate - 1 :N - The parent is duplicated upon saving the child

java - Oracle 11g 中的 Hibernate 和 DOUBLE

java - 当函数必须返回通用数据类型的某些值时,在java中处理NullPointerException

java - 使用异步方法从 java 类更新 UI

java - 将 Java-1.7 项目库导入 Android 时出错

java - Ehcache 低内存行为

java - 如何查看用户从 JList 中选择了什么?

java - 使用 Java 从文本文件中读取/求和数字

java - 带有 Hibernate 映射文件的 Spring Data JPA