2013-04-11 45 views
49

我需要在Spring Data Repository中使用原始SQL,這可能嗎?我在@Query附近看到的所有內容始終以實體爲基礎。是否可以在Spring Repository中使用原始SQL

+0

會SqlQuery類呢? http://static.springsource.org/spring/docs/2.5.x/api/ – 2013-04-11 12:34:01

+0

我如何在存儲庫中使用它?或者我不會使用回購協議,只是在我的服務中使用該對象? – Webnet 2013-04-11 12:34:41

+0

你使用spring-data-jpa嗎? – zagyi 2013-04-11 12:35:35

回答

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)' – 2017-01-06 09:20:58

1

也可以使用Spring Data JDBC repository,這是建立在Spring的數據共享的頂部,以獲取與原始SQL數據庫社區項目,而無需使用JPA。

它比Spring數據JPA那麼強大,但如果你想在不使用的ORM如Hibernate,是值得的解決方案,以儘量簡單的項目輕量級的解決方案。

0

我們可以使用createNativeQuery( 「在這裏Nagitive SQL查詢」);

例如:

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