아래는 각 JPA마다의 실제 query string을 보는 메서드이다.
Query 생성
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery
Root
q.select(b).orderBy(cb.desc(b.get("id")));
TypedQuery
EclipseLink
findAllBooks.unwrap(JpaQuery.class).getDatabaseQuery().getJPQLString(); // doesn't work for CriteriaQuery findAllBooks.unwrap(JpaQuery.class).getDatabaseQuery().getSQLString();
Hibernate
findAllBooks.unwrap(org.hibernate.Query.class).getQueryString()
OpenJPA
findAllBooks.unwrap(org.apache.openjpa.persistence.QueryImpl.class).getQueryString()
Unit testing
assertEquals("SELECT b FROM Book b ORDER BY b.id DESC", findAllBooksCriteriaQuery.unwrap(org.apache.openjpa.persistence.QueryImpl.class).getQueryString());
원본 출처 : antoniogoncalves.org/2012/05/24/how-to-get-the-jpqlsql-string-from-a-criteriaquery-in-jpa/
댓글 없음 :
댓글 쓰기