원시 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) }
을 사용하여 매개 변수를 직접 바인딩 할 수 있습니다. 또한 Grails의 응용 프로그램에서 그루비 SQL을 사용하여
+0
사실,하지만 이것은 Hibernate의 많이 최적화 된 코드보다 상당히 느릴 것이라고 생각합니다. –
8
는
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
datasourc 개체를 사용하는 메서드가 없으므로 Sql.newInstance (dataSource)가 실패합니다. – benstpierre
관련 문제
- 1. 장고 원시 SQL 내가이 원시 쿼리를 가지고
- 2. SQL 서버의 매핑 결과
- 3. Grails 도메인 클래스에 필드를 추가 하시겠습니까?
- 4. TEXT 필드가있는 Grails 도메인 클래스를 레거시 데이터베이스에 매핑
- 5. Groovy 도메인 매핑
- 6. Grails 내부 : 자동 매핑 및 도메인 객체 생성
- 7. 도메인 클래스에 여러 파일 첨부하기
- 8. grails 액션을 부모 컨트롤러에 매핑
- 9. 매핑 테이블을 사용하는 SQL 쿼리의 "Distinct"결과
- 10. 도메인 클래스에 "save"메소드를 조롱하십시오.
- 11. grails url 매핑
- 12. Grails URL 매핑 질문
- 13. SQL 쿼리를 VBA 및 폼 결과 표시
- 14. 결과 집합을 얻으려면 어떤 SQL 쿼리를 수행해야합니까?
- 15. Grails : 크로스 조인의 데이터로 도메인 채우기 : hql, criteria, SQL query?
- 16. 도메인 클래스에 메서드 추가
- 17. Grails 도메인 생성 연관 테이블
- 18. grails 도메인 클래스의 Hibernate 캐시
- 19. NHibernate 매핑 도메인 "확장 속성"?
- 20. 포워드 프록시에서 도메인 매핑
- 21. Grails의 도메인 클래스에 따라 Grails의 도메인 클래스
- 22. grails many_to_many 커스텀 매핑 테이블
- 23. Dom4j로 복잡한 결과 집합 매핑
- 24. 엔티티 클래스가없는 원시 SQL 쿼리 사용
- 25. joinTable을 사용하는 Grails 일대 다 매핑
- 26. SQLAlchemy 표현식에서 원시, 컴파일 된 SQL 쿼리를 어떻게 구합니까?
- 27. Grails 도메인 컨트롤러에서 종속성 삽입
- 28. Grails : 이름으로 도메인 클래스를 찾으십시오.
- 29. 데이터베이스에서 Grails 도메인 클래스 생성
- 30. Grails 도메인 클래스 디자인 문제
이 매우 helpfull했다! – Topera
감사합니다. 그것은 나를 도왔다 ... –
무엇이 나를 위해 누락 되었습니다이 대답은 'def sessionFactory' (내가 당신처럼 컨트롤러 에서이 일을하는 경우) 컨트롤에 표시되어야합니다. 필드가 삽입 된 다음 sessionFactory.currentSession을 수행 할 수 있습니다. – Jason