Есть ли в jpql эквивалент мнений? - PullRequest
1 голос
/ 17 мая 2010

Если у меня есть сложное предложение where, которое незначительно варьируется между многими запросами, в SQL я создал бы представление на основе большей части предложения where, а затем запросил бы представление несколько раз. И для производительности, и для удобства обслуживания.

Я не вижу эквивалента в jpql.

Я или спецификация jpql. что-то упустил?

Ура, Фил

Ответы [ 2 ]

1 голос
/ 18 мая 2010

Не прямой ответ, но почему бы вам не отобразить сущность в представлении SQL? В некоторых случаях представления SQL являются самым простым и эффективным решением, особенно когда данные доступны только для чтения. Только не злоупотребляйте ими.

0 голосов
/ 18 мая 2010

В JPA2 комбинация EntityManager и CriteriaQuery очень мощная:

http://java.sun.com/javaee/6/docs/api/javax/persistence/criteria/CriteriaQuery.html

http://java.sun.com/javaee/6/docs/api/javax/persistence/EntityManager.html#createQuery(javax.persistence.criteria.CriteriaQuery%29

Вы определяете базовый запрос CriteriaQuery (чем-то похожий на представление) с помощью CriteriaBuilder, а затем используете диспетчер сущностей для создания запроса на основе критерия запроса. Поскольку критерии запроса являются объектами, их можно повторно использовать на стороне Java.

Возможно, провайдеры также реализуют кэширование по критериям запроса, но я не знаю об этом.

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