【发布时间】:2019-05-11 13:05:05
【问题描述】:
我正在使用 Spring Data JPA + QueryDSL。我创建这样的动态查询:
JPAQuery<Foo> query = jpaQueryFactory.select(...);
我发现这篇旧文章展示了如何以编程方式检索本机 sql 字符串:https://antoniogoncalves.org/2012/05/24/how-to-get-the-jpqlsql-string-from-a-criteriaquery-in-jpa/,但它对我不起作用。
我试过这个:
String queryString1 = query.createQuery().unwrap(org.hibernate.query.Query.class).getQueryString();
String queryString2 = query.createQuery().unwrap(org.eclipse.persistence.jpa.JpaQuery.class).getDatabaseQuery().getSQLString();
第一个没有返回本机 sql,而是返回 JPQL 字符串,第二个无法将 org.hibernate.query.internal.QueryImpl 解转为 org.eclipse.persistence.jpa.JpaQuery。
PS:我在获取查询之前和之后进行了测试。
【问题讨论】:
标签: java spring-data-jpa querydsl