是否可以將本機SQL查詢的結果映射到Grails域類實例的集合?將本機SQL查詢映射到Grails域類的結果
16
A
回答
18
import com.acme.domain.*
def sessionFactory
sessionFactory = ctx.sessionFactory // this only necessary if your are working with the Grails console/shell
def session = sessionFactory.currentSession
def query = session.createSQLQuery("select f.* from Foo where f.id = :filter)) order by f.name");
query.addEntity(com.acme.domain.Foo.class); // this defines the result type of the query
query.setInteger("filter", 88);
query.list()*.name;
2
你可以映射它自己沒有太多的麻煩。或者,如果使用HQL,則可以使用select new map()
,然後以query.list().collect { new MyDomainObject(it) }
手動綁定參數。
+0
確實如此,但我認爲這會比Hibernate經過大量優化的代碼慢得多。 – 2010-01-20 01:28:23
8
或者使用Groovy SQL在Grails的應用
import groovy.sql.Sql
class TestQService{
def dataSource //Auto Injected
def getBanksForId(int bankid){
def sql = Sql.newInstance(dataSource)
def rows = sql.rows(""" Select BnkCode , BnkName from Bank where BnkId = ?""" , [bankid])
rows.collect{
new Bank(it)
}
}
class Bank{
String BnkCode
String BnkName
}
}
+0
Sql.newInstance(dataSource)失敗,因爲沒有采用datasourc對象的方法。 – benstpierre 2013-09-13 22:58:54
相關問題
- 1. 將查詢結果映射到屬性
- 2. 如何將Grails域類映射到DTO?
- 3. 將密碼查詢結果映射到域對象
- 4. 如何將SQL查詢的結果映射到對象上?
- 5. 將SQL查詢結果映射到PHP中的JSON
- 6. 單列結果NHibernate SQL查詢映射
- 7. 將SQL查詢結果映射到DTO未被相應排序
- 8. 將Hibernate查詢結果映射到自定義類?
- 9. 如何將SolrNet查詢結果映射到類?
- 10. 將Linq查詢結果映射到DTO類
- 11. NHibernate不會將查詢結果映射到其類型
- 12. 映射油滑的SQL查詢結果case類
- 13. JPA本機查詢結果集映射不工作?
- 14. Grails:將類型爲enum的mysql字段映射到域類
- 15. 休眠SQL查詢結果映射/轉換爲對象/類/豆
- 16. 映射到本地SQL查詢
- 17. 映射到域結果的NSDictionary錯誤
- 18. 映射到Java數據類型的嵌套查詢結果
- 19. 將SQL SSRS映射結果映射到矩陣
- 20. 將查詢結果映射到Java中的POJO構造函數
- 21. 將Grails域類映射到連接表中的問題
- 22. Spring-Data + QueryDSL + JDBC:如何將查詢結果映射到域對象?
- 23. EclipseLink拒絕將PostgreSQL上的本機查詢映射到實體
- 24. 將neo4j ogm查詢結果映射到java對象
- 25. 如何使用jmeter將查詢結果映射到變量中
- 26. Grails/GORM中的結果集映射
- 27. nHibernate命名查詢將數據映射到類映射
- 28. Grails:將域類變量映射到Web API XML數據源
- 29. 如何將mysql表映射到Grails域類?
- 30. 如何將本機SQL查詢映射到休眠中的dto對象?
,這是非常有益的! – Topera 2011-05-17 21:44:16
謝謝。它也幫助了我...... – 2011-09-14 06:07:14
在這個答案中我缺少的是'def sessionFactory'必須出現在控件中(如果你是在像我這樣的控制器中執行此操作)。該字段被注入,然後您可以執行sessionFactory.currentSession。 – Jason 2015-06-24 16:23:15