Имеет ли querydsl те же ограничения, что и JPA Criteria API?
JPA Criteria API имеет ряд важных ограничений. Например:
- нет поддержки правому внешнему соединению
- поддержка left-external-join только в том случае, если отношение в сущностях находится в одном направлении
- нет поддержки подзапроса ни в SELECT, ни в предложениях FROM
Есть ли QueryDsl querydsl-jpa
страдают от таких же ограничений?
Как насчет QueryDsl querydsl-sql
?
РЕДАКТИРОВАТЬ: Из документации QueryDsl (без конкретного опыта работы с ним), QueryDsl предоставляет два класса запросов JPAQuery
а также JPASQLQuery
, Первый, похоже, имеет то же ограничение, что и JPA Criteria API, но JPASQLQuery
не кажется Если я найду время, я углублюсь в код и попробую его. Но если кто-то уже что-то знает об этом, тогда пожалуйста!
1 ответ
Решение
Ваше предположение верно. Querydsl JPA имеет те же ограничения, что и упомянутые три ограничения также являются ограничениями JPQL, языка запросов JPA.
JPAQuery
для JPQL-запросов и JPASQLQuery
для JPA собственных (SQL) запросов.