- Query q=super.getSession().createQuery("from Eventinfoall");
- q.setFirstResult(1);
- q.setMaxResults(3);
用hibernate实现mysql sqlserver 分页时使用这种方法都没有问题,但是用oracle时就出现问题,老是报错
ORA-00923: FROM keyword not found where expected
from关键字没有找到
但是如果直接用
- Query q=super.getSession().createQuery("from Eventinfoall");
是可以返回所有结果集的.
说明问题不在我写的hql语句上面.
接下来我又分析一下是不是jar包的问题,我试着去下载多个版本的oracle10 jar包,可是结果还是一样,报同样的错误.
这样jar包问题也就排除了。
与oracle有关的就只有spring配置文件了,我惊奇的发现在配置hibernate.dialect,我竟然用的是org.hibernate.dialect.SQLSERVERDialect
,立即修改为org.hibernate.dialect.OracleDialect,问题解决了,分页效果出来了。
总结:数据库用oracle,方言用sqlserver,这应该是说明,hibernate在处理这两种数据库在分页上是不相同的,所以就报错了,同时也说明了一些基
本的查询处理应该是相同的,所以直接查询能显示出结果集.