Grails 中executeQuery的结果如何处理???
copoplar
2008-04-13
本人正在做一个小的项目,其中需要把数据库里的部分数据抽取出来,需要随机(所以需用到executeQuery,因为MySql提供了rand(),可以实现随机选择记录)
比如:
Item.executeQuery("SELECT * FROM Item ORDER BY rand()")
这个返回结果如何处理? 我想把这个结果展示在页面上,然后进行其他的操作。
就这句都报错,说:*有问题,unexpected token: *
=====
Message: unexpected token: * near line 1, column 8 [SELECT * FROM Item ORDER BY rand() ]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [SELECT * FROM Item ORDER BY rand() ]
Caused by: org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: * near line 1, column 8 [SELECT * FROM Item ORDER BY rand() ]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [SELECT * FROM Item ORDER BY rand() ]
Class: ItemController
At Line: [88]
Code Snippet:
88: item = Item.executeQuery("SELECT * FROM Item ORDER BY rand() " )
请那位大侠帮忙啊!
|
|
copoplar
2008-04-13
查了很多的GORM文档,都没有找到如何处理 查询返回结果集如何处理的示例。
|
|
copoplar
2008-04-13
难道非得用groovy.sql.Sql ?
|
|
山风小子
2008-04-13
Item.executeQuery(...)
传入的应该是HQL语句,而非正规的SQL语句。 关于执行SQL语句,你可以参考一下: 我的一篇随笔(http://www.blogjava.net/BlueSUN/archive/2008/01/26/177945.html) |
|
agile_boy
2008-04-13
我觉得你要么使用Hibernate的原生SQL或者直接使用GSQL
|
|
dellsoft
2008-04-14
如果想直接使用原始sql,在配置一个数据源,用新数据源来执行原始Sql
|
|
copoplar
2008-04-15
谢谢各位老师的指点,对我很有启发,特别岚关于操作excel的案例,我下一步也需要进行数据的导入导出,很有帮助。对groovy.Sql也有了一定的了解,谢谢!
今天早晨看资料,忽然我的问题有了新思路: 其实我就是需要把记录从数据库里随机抽取出来,然后展现,刚才发现有getAll();这样只要生成一个随机的数组,扔给getAll就行了,哈哈。看来有时候,有了问题需要从多个角度来考虑,不要认死理。 eg: def a = [3,1,2] def items = Item.getAll(a) 简单有用。 |
|
aliciaking
2009-05-05
grails自动生成的数据库表中的id字段,在删除了一个条目后,id就不是连续的了,会有空缺……考虑到这个就稍有麻烦。这个楼主是怎么解决的?
|
|
loong_lang
2009-05-08
def list = BugInfo.executeQuery("FROM BugInfo ORDER BY rand()")
这里list就是BugInfo的列表,没有什么特别的 |
|
copoplar
2009-05-21
还是hql不好啊!谢谢!
|