Когда следует использовать собственные запросы с JPA 2.0 вместо JPQL или CriteriaBuilder?

Я очень не понимаю, когда и когда не следует использовать собственные запросы в JPA 2.0. У меня создалось впечатление, что использование собственных запросов может привести к рассинхронизации с кешем JPA. Если я могу сделать то же самое с запросом JPQL или CriteriaBuilder, есть ли веская причина использовать собственный запрос? Точно так же есть ли опасность в использовании собственного запроса, если я могу сделать то же самое с JPQL или CriteriaBuilder? И, наконец, если существует опасность использования собственного запроса, связанная с рассинхронизацией с кешем JPA, будет ли такая же опасность существовать при выполнении эквивалентного запроса с помощью JPQL или CriteriaBuilder?

Моя философия заключалась в том, чтобы избегать использования встроенного запросы, но, конечно, бывают случаи, когда они необходимы. Мне кажется, что если я могу это сделать с помощью JPQL или CriteriaBuilder, то должен.

Спасибо.

8
задан user1148956 3 March 2012 в 14:21
поделиться