hibernate中用oracle分页 想写成如下写法,但是报错,不知道怎么写Query query = session.createQuery("select * from (select * from VstsTrade where rownum<=3) VstsTrade where rownum>=1");
错误信息org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select * from (select * from com.vsts.model.pojo.VstsTrade where rownum<=3) VstsTrade where rownum>=1]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
at com.vsts.model.daoImpl.VstsTradeDAOImpl.findAll(VstsTradeDAOImpl.java:102)
at com.vsts.model.daoImpl.TestTradeDaoImpl.testFindAllPage(TestTradeDaoImpl.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
解决方案 »
- java.lang.reflect.InvocationTargetException
- dwr 配置文件中将java类 问题
- java.io.IOException: CreateProcess: F:\JSP\WorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\onlinejudge
- 100分求助 怎么在JSP中调用JAVABEAN方法中定义的变量
- jsp如何实现在页面重定向之前弹出一个对话框?
- jsf 复杂数据验证 快点啊,救命。先到先得
- Tomcat 的发布JSP 网页的 问题?
- Exception in thread "main" java.lang.OutOfMemoryError
- 如何使页面停留数秒在跳转(在线等待)
- Jsonp怎么跨域传值到另一个项目
- extjs desktop的桌面图标排列和IE下图标闪烁问题
- 这样得到地址,该如何实现呀?
的用createSQLQuery原生sql查询
是的,将createQuery()改成createSQLQuery试试。应该没问题了
createQuery()里面放的是hql语句
hql语句跟sql是有区别的,hql是根据对象查,可以使用对象
!
你这里好像使用的是sql,
同时分页我也不建议这样去分,
hibernate有更好的办法了
!
List list=session.createQuery("from VstsTrade").setFirstResult(pageNo*pageSize-pageSize).setMaxResults(pageSize).list();
pageNo表示当前也
pageSize表示每页显示几条数据
这样就可以了。也是HQL