Преимущества именных запросов в спящем режиме?
Я использую hibernate и хотел использовать именованные запросы. но я не знаю, это хорошее решение или нет? пожалуйста, предоставьте мне преимущества названных запросов.
Когда сгенерированы именованные запросы?
можно ли напрямую изменить именованный запрос в файле hbm, который развернут на сервере приложений?
Пожалуйста, помогите мне.
Спасибо!
Ответы
Ответ 1
Именованные запросы компилируются при создании экземпляра SessionFactory (так, по сути, при запуске приложения).
Таким образом, очевидное преимущество заключается в том, что все ваши запросы именованные запросы проверяются в то время, а не сбой при выполнении. Другим преимуществом является то, что они легко (- ier) для поддержки - конечно, для сложных запросов.
Недостаток заключается в том, что именованные запросы не настраиваются во время выполнения - вы можете определить/предоставить параметры, конечно, но помимо того, что вы определили, это то, что вы я получу; вы даже не можете изменить сортировку. Другим недостатком является то, что вы не сможете изменить именованный запрос на запущенном сервере приложений без перезагрузки SessionFactory.
Ответ 2
Преимущества
- скомпилирован и проверен при запуске приложения
- проще поддерживать, чем строковые литералы, встроенные в ваш код.
- HQL и собственные SQL-запросы могут использоваться и заменяться без изменений кода (нет необходимости перекомпилировать ваш код)
Недостатки
- статичным
- сопоставление результатов с собственными SQL-запросами иногда громоздко
Итак, я думаю, что вам обязательно нужно выбрать именованные запросы по строковым литералам в вашем коде. Когда вам нужно какое-то динамическое создание запросов во время выполнения, вы должны взглянуть на API-интерфейс Hibernate Criteria > . Критерий Hibernate не всегда легко и интуитивно понятен, но вы должны обязательно использовать его вместо генерации строк запроса во время выполнения.
HTH