我正在使用Play Framework和JPA / Hibernate开发一个Web应用程序.出于调试目的,很高兴看到JPA使用的sql语句.已经有另一个
thread有相同的问题,但它是关于Play 1,并且给定的解决方案对我不起作用 – 似乎jpa.debugsql = true不能在Play 2中使用(EntityManager的No Persistence提供程序名为true).
相反,我在Play的application.conf中添加了以下内容:
db.default.logStatements=true logger.org.hibernate=DEBUG
我不确定我是否需要两行,但至少现在记录了sql语句.
但是对于大型查询,Hibernate打印了大量的调试消息,使得已打印的sql语句在我的控制台窗口中消失.我已经尝试增加控制台窗口的缓冲区,但这并没有太大变化.
为了以舒适的方式检查陈述,我该怎么办?
编辑:
将logger.org.hibernate设置为INFO时,我根本没有得到任何语句(即使db.default.logStatements = true).
解决方法
首先尝试使用配置
db.default.logStatements=true logger.org.hibernate=DEBUG
找出哪个类记录语句(例如org.hibernate.xxx.StatementLogger).
更改回org.hibernate的INFO并为语句记录器包添加一个新行:
logger.org.hibernate=INFO logger.org.hibernate.xxx=DEBUG