Hibernate ... как делать запросы к базе данных / SQL? - PullRequest
2 голосов
/ 16 июля 2010

Я (кажется, я) понимаю, что Hibernate предлагает мне доступ к реляционной базе данных, по сути, как если бы у меня был класс (ы), который соответствовал бы любым представлениям, которые я определяю для некоторых таблиц.

Как мне сделать так, чтобы результаты определенного запроса были доступны через класс? В частности, можно ли выполнить сложный запрос SQL и обработать несколько результатов?

Потеряю ли я силу SQL при использовании Hibernate?

Ответы [ 2 ]

4 голосов
/ 16 июля 2010

Я (думаю, что) понимаю, что Hibernate предлагает мне доступ к реляционной базе данных, по сути, как если бы у меня был класс (ы), который соответствовал бы любому представлению (ям), определенному для некоторых таблиц.

Hibernate предоставляет среду, позволяющую сопоставить объектную модель с вашей базой данных, и API для управления данными через эту объектную модель.

Как получить результаты определенного запроса, которые будут доступны черезкласс?В частности, могу ли я выполнить сложный запрос SQL и обработать несколько результатов?

Я не уверен, что понял вопрос, но посмотрим.Hibernate может использовать HQL (Hibernate Query Language) запросов и / или Criteria запросов для выполнения запросов к объектной модели .

Но вы также можете использовать собственный SQL (жертвуя переносимостью) для возврата сущностей , нескольких сущностей или даже неуправляемых сущностей (см. Также Hibernate 3.2: Трансформаторы для HQL и SQL ).

Потеряю ли я какие-либо возможности SQL при использовании Hibernate?

HQL иКритерии API довольно мощные - и переносимые - и будут генерировать правильный SQL для вашего бэкэнда.При необходимости вы все равно можете использовать собственные запросы SQL, как уже упоминалось.Но в большинстве случаев HQL и Criteria работают хорошо и должны быть предпочтительными.

См. Также

3 голосов
/ 16 июля 2010

Hibernate3 позволяет указывать рукописный SQL, включая хранимые процедуры, для всех операций создания, обновления, удаления и загрузки.

 sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").list();

Больше на http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querysql.html

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