Grails GORM - 用 native sql 进行查询并将结果映射为 domain object
代码如下:
1. 先获取 Hibernate Session,是一个 org.hibernate.Session 接口的实现类
2. 创建 native query,查询并返回 domain object
@CompileDynamic
List<User> matchStaff(ServeOrder order) {
List<User> userList = []
// 匹配地点
ServeOrder.withDatastoreSession { hibernateSession ->
def session = hibernateSession.hibernateTemplate.sessionFactory.getCurrentSession()
userList = session.createNativeQuery(
"""select u.* from (select * from user where is_worker=1) u
""", User).getResultList()
log.debug("候选用户:${userList}")
}
// 匹配时间
return userList
}
不映射为 domain 对象的方法
TODO