Смешивание JPQL и CriteriaQuery - PullRequest
       0

Смешивание JPQL и CriteriaQuery

4 голосов
/ 22 февраля 2011

Можно ли смешивать JPQL и CriteriaQuery?

У меня есть String, который содержит условие where в JPQL и CriteriaQuery, который уже построен и получен откуда-то еще.Интересно, могу ли я добавить условие where String в CriteriaQuery.where().Условие where может представлять собой несколько условий «and-ed» / «or-ed» вместе.

Можно ли это сделать без анализа условия where String?

Ответы [ 3 ]

2 голосов
/ 02 марта 2011

Как отмечалось ранее, в JPA нет общей спецификации для этого (я знаю о ней).Однако в реализациях могут существовать методы для преобразования запросов в выражения или ограничения.В TopLink (и, вероятно, в EclipseLink) Expression.postfixSQL и prefixSQL - это методы, которые наиболее близки.У Hibernate есть Restrictions.sqlRestriction.

Я не знаю ни о каких других реализациях.

1 голос
/ 02 марта 2011

Ну, одну вещь, которую вы можете сделать, - преобразовать CriteriaQuery в JPQL и объединить две части WHERE строк.

См. «JPQL-эквивалент критерия запроса» на http://www.datanucleus.org/products/accessplatform/jpa/jpql_criteria.html

1 голос
/ 27 февраля 2011

Если есть способ сделать это в JPA 1.0 или 2.0, я не знаю об этом, но этот ответ на другой вопрос предполагает, что смешивание JPQL и CriteriaQuery будет доступно в JPA 2.1 (некоторыевремя в будущем).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...