2013-04-11 3 views
49

Мне нужно использовать необработанный SQL в хранилище данных Spring, возможно ли это? Все, что я вижу около @Query, всегда основано на сущности.Возможно ли использовать необработанный SQL в репозитории Spring

+0

Would SQLQuery делать? http://static.springsource.org/spring/docs/2.5.x/api/ –

+0

Как я могу использовать это в репозитории? Или я бы не использовал репо и просто использовал этот объект в моем сервисе? – Webnet

+0

Вы используете spring-data-jpa? – zagyi

ответ

77

Аннотация @Query позволяет выполнять собственные запросы, устанавливая флаг nativeQuery в true.

Цитата из Spring Data JPA reference docs.

Кроме того, см. this section о том, как это сделать с помощью наследуемого запроса.

+3

@ user454322, параметры начинаются с 1, поэтому это: '@Query (value =" SELECT * FROM USERS WHERE EMAIL_ADDRESS =? 1 ", nativeQuery = true)' –

1

Также можно использовать Spring Data JDBC repository, который представляет собой проект сообщества, созданный на основе Spring Commons для доступа к базам данных с необработанным SQL, без использования JPA.

Он менее мощный, чем Spring Data JPA, но если вы хотите легкое решение для простых проектов, не используя ORM, как Hibernate, это решение стоит попробовать.

0

мы можем использовать createNativeQuery («Здесь Nagitive SQL Query»);

для примера:

Query q = em.createNativeQuery("SELECT a.firstname, a.lastname FROM Author a"); 
List<Object[]> authors = q.getResultList();