将hql查询转换为java日志中的sql

9avjhtql  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(260)

我有如下示例查询

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

结果是一个我期望的列表,但我想知道如何在执行查询之前在tomcat日志中sysout sql查询。我是否可以在代码级别执行此操作,而不是在log4j或hibernate config中设置属性?
在本例中,我要查找的输出如下

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

p1tboqfb1#

要在代码级别访问sql,可以将datasource代理库与侦听器一起使用。
您可以在我的github repo jpa拼图中找到数据源代理及其侦听器的示例。
但是,如果您只想看到带有绑定参数的sql-s( show-sql 仅显示不带绑定参数的sql-s),使用hibernate配置更容易:

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

相关问题