有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java日志中将HQL查询转换为SQL

我有一个如下的示例查询

String hql = "from Stock s where s.stockCode = :stockCode";
List result = session.createQuery(hql)
.setParameter("stockCode", "7277")
.list();

结果是一个我期望的列表,但我想知道如何在执行查询之前在Tomcat日志中对sql查询进行sysout。与在log4j或hibernate配置中设置属性相比,我是否可以在代码级别这样做

在本例中,我正在寻找如下输出

select * from Stock s where s.code = 123;

共 (1) 个答案

  1. # 1 楼答案

    要在代码级别访问SQL,可以将the datasource proxy library与侦听器一起使用

    您可以在my github repojpa-puzzles上找到数据源代理及其侦听器的示例

    但是,如果您只想看到带有绑定参数的sql-s(show-sql只显示sql-s而不显示绑定参数),则使用hibernate配置更容易:

    logging.level.org.hibernate.SQL=DEBUG
    logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE