О компиляции JPA NamedNativeQuery - PullRequest
0 голосов
/ 19 сентября 2018

SQL-запросы, указанные внутри @NamedNativeQuery, предварительно скомпилированы так же, как @NamedQuery в JPA?Я спрашиваю об этом, потому что я не смог найти ничего, заявляющего, что это так или нет.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Объем предварительной обработки, выполненной для запросов, помеченных @NamedNativeQuery, зависит от поставщика JPA, однако не следует предполагать, что многое происходит, поскольку запрос является родным для базовой базы данных, поэтому ничего не происходит вуровень JPA.Это особенно актуально, если вы вызываете хранимые процедуры или что-то очень специфичное для базы данных JPA не знает.Нет перевода с JPQL на SQL.

Под капотом может возникнуть некоторая оптимизация вокруг подготовленных операторов для этих именованных запросов.Но это зависит от поставщика JPA и его уровня взаимодействия с драйвером JDBC вашей конкретной базы данных.

0 голосов
/ 19 сентября 2018

@NamedQuery " прекомпиляция " в основном переводится заранее на собственный язык запросов (обычно SQL), поэтому вы можете сделать это только один раз при запуске / первом использовании приложения, а не каждый раз, когда вывыполните запрос.

@NamedNativeQuery запросы уже написаны на собственном языке запросов, поэтому в этом смысле они « изначально » предварительно скомпилированы.

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