显示使用 mysemma 的 querydsl 时自动生成的 sql 查询的任何最佳方式,以便可以轻松查看这些 sql 查询,并且在使用 querydsl 时可以轻松调试 sql 查询。
例如:from(qCustomer).where(qCustomer.custId.eq("1"));
我需要知道幕后生成的 sql 并且想要记录,以便我可以轻松地调试我的应用程序。
显示使用 mysemma 的 querydsl 时自动生成的 sql 查询的任何最佳方式,以便可以轻松查看这些 sql 查询,并且在使用 querydsl 时可以轻松调试 sql 查询。
例如:from(qCustomer).where(qCustomer.custId.eq("1"));
我需要知道幕后生成的 sql 并且想要记录,以便我可以轻松地调试我的应用程序。
Spring boot 用户,在下面添加application.properties
或等效的 yaml 文件以启用 QueryDsl 日志。
logging.level.com.querydsl.sql=DEBUG
请在您的 application.properties 文件中添加以下设置并检查。
spring.jpa.show-sql=true
我看到使用上述设置生成的 SQL。仅供参考,我正在使用 Spring Data JPA 和 QueryDSL 4.1.3
例子:
SQLQuery<String> sqlQuery = factory
.select(stringTemplate)
.from("table")
.where(areaIdPath.eq(13L));
sqlQuery.setUseLiterals(true);
String sql = sqlQuery.getSQL().getSQL();
设置UseLiterals = true,然后 getSQL() 将生成具有参数的 sql。
Set whether literals are used in SQL strings instead of parameter bindings (default: false)
<p>Warning: When literals are used, prepared statement won't have any parameter bindings
and also batch statements will only be simulated, but not executed as actual batch statements.</p>