Создать запрос в Hibernate
Когда мы должны использовать
createQuery(String),
createNamedQuery(String),
createNativeQuery(String)
в Hibernate и в чем разница между ними?
Ответы
Ответ 1
CreateQuery:
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/objectstate.html#objectstate-querying
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/queryhql.html
createNamedQuery:
http://www.mkyong.com/hibernate/hibernate-named-query-examples/
http://www.javalobby.org/java/forums/m91885316.html
createNativeQuery:
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/querysql.html
Ответ 2
-
CreateQuery: используется для создания HQL.
-
createNamedQuery. Используется для определения запросов с именем в файле сопоставления или аннотации. Посмотрите это.
-
createNativeQuery: используется для выполнения собственных/чистых SQL-запросов. Пример
Ответ 3
Они различаются по смыслу аргумента, с которым они вызываются.
- createQuery принимает фактический запрос JP-QL как аргумент.
- createNamedQuery принимает имя запроса как аргумент, который определен в другом месте, например. с аннотацией
@javax.persistence.NamedQuery
.
- createNativeQuery вызывается с SQL-запросом.