JPQL VS Criteria Api - PullRequest
       31

JPQL VS Criteria Api

0 голосов
/ 06 декабря 2011

Ну, во-первых: я нашел этот вопрос:

Что использовать: JPQL или Criteria API?

и из других поисков, я полагаю, единственное преимуществоКритерий API - это возможность проверить запрос и, если он не верен, вернуть ошибку компилятора.Это правильно?Если нет, то каковы преимущества и недостатки использования JPQL или Criteria Api?

PS: Вопрос возникает после этого другого вопроса:

https://stackoverflow.com/questions/8342955/error-in-criteriaquery и трудностей, с которыми я сталкиваюсьнахожу, чтобы решить эту проблему, когда я делаю правильный метод с использованием JPQL в течение 20 минут ...

1 Ответ

0 голосов
/ 30 января 2016

Я думаю, что вы спрашиваете, когда будет , вы считаете Критериальный Запрос.Кроме того, я предполагаю, что вы используете сервер приложений.

Существует API Criteria, позволяющий создавать динамические запросы SQL безопасным для типов образом, предотвращающим внедрение SQL.В противном случае вы будете объединять строки SQL вместе, что сопряжено с ошибками и угрозой безопасности: например, SQL-инъекция.Это будет единственный раз, когда вы захотите использовать Criteria API.

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

Это в основном практическое правило , касающееся критериальных запросов по сравнению с @NamedQueries.По моему опыту, вам редко требуется API Criteria, но хорошо, что он существует для тех редких случаев, когда это требуется.

Надеюсь, это поможет.

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