Подтвердить что ты не робот

Преимущества именных запросов в спящем режиме?

Я использую hibernate и хотел использовать именованные запросы. но я не знаю, это хорошее решение или нет? пожалуйста, предоставьте мне преимущества названных запросов.

Когда сгенерированы именованные запросы? можно ли напрямую изменить именованный запрос в файле hbm, который развернут на сервере приложений?

Пожалуйста, помогите мне.

Спасибо!

4b9b3361

Ответ 1

Именованные запросы компилируются при создании экземпляра SessionFactory (так, по сути, при запуске приложения).

Таким образом, очевидное преимущество заключается в том, что все ваши запросы именованные запросы проверяются в то время, а не сбой при выполнении. Другим преимуществом является то, что они легко (- ier) для поддержки - конечно, для сложных запросов.

Недостаток заключается в том, что именованные запросы не настраиваются во время выполнения - вы можете определить/предоставить параметры, конечно, но помимо того, что вы определили, это то, что вы я получу; вы даже не можете изменить сортировку. Другим недостатком является то, что вы не сможете изменить именованный запрос на запущенном сервере приложений без перезагрузки SessionFactory.

Ответ 2

Преимущества

  • скомпилирован и проверен при запуске приложения
  • проще поддерживать, чем строковые литералы, встроенные в ваш код.
  • HQL и собственные SQL-запросы могут использоваться и заменяться без изменений кода (нет необходимости перекомпилировать ваш код)

Недостатки

  • статичным
  • сопоставление результатов с собственными SQL-запросами иногда громоздко

Итак, я думаю, что вам обязательно нужно выбрать именованные запросы по строковым литералам в вашем коде. Когда вам нужно какое-то динамическое создание запросов во время выполнения, вы должны взглянуть на API-интерфейс Hibernate Criteria > . Критерий Hibernate не всегда легко и интуитивно понятен, но вы должны обязательно использовать его вместо генерации строк запроса во время выполнения.

HTH