querydsl QueryResults 获得sql语句
时间: 2023-10-12 17:09:53 浏览: 137
使用 QueryResults 对象获取 SQL 语句需要使用 Querydsl 的日志记录功能。在创建 JPAQuery 或 SQLQuery 对象时,可以使用 `com.querydsl.sql.SQLTemplates` 对象来设置日志记录级别。如果将日志记录级别设置为 `com.querydsl.sql.LoggingLevel.SQL`,则会记录所有执行的 SQL 语句。以下是一个示例:
```java
Configuration configuration = new Configuration(new MySQLTemplates());
configuration.set(SQLTemplates.LOGGER_CATEGORY, "com.querydsl.sql.SQL");
SQLQuery<?> query = new SQLQuery<>(connection, configuration);
QueryResults<?> results = query.from(table).fetchResults();
```
在上面的示例中,我们创建了一个 `Configuration` 对象,并将其传递给 `SQLQuery` 构造函数。然后,我们将日志记录级别设置为 `com.querydsl.sql.LoggingLevel.SQL`,并创建了一个 `SQLQuery` 对象来执行查询。最后,我们使用 `fetchResults()` 方法获取查询结果,并在日志中查找 SQL 语句。
请注意,这种方法只适用于 SQLQuery 对象,如果您使用 JPAQuery 对象执行查询,则无法直接获得生成的 SQL 语句。
阅读全文