hibernate自带的分页问题

MC-热狗 2011-11-15 12:59:23
public PageViewObject getOnePageMultiResult(Session session,
Query queryObj,Query otherQuery, Integer pageCount,
Integer currPage) throws
HibernateException {
PageViewObject pageViewObject = new PageViewObject();
String sqlCount = null;
List ls = queryObj.list();
List ls1 = otherQuery.list();
int totalSize = 0;
if (ls != null && ls.size() > 0)
totalSize = ls.size();
if (ls1 != null && ls1.size() > 0)
totalSize = totalSize + ls1.size();

int perPageCount = pageCount.intValue();
int currentPage = currPage.intValue();
if (perPageCount == 0)
perPageCount = totalSize;
queryObj.setFirstResult(perPageCount *
( (currentPage == 0) ? 0 :
currentPage - 1));
queryObj.setMaxResults(perPageCount);
List results = queryObj.list();
List results_1 = otherQuery.list();
results.addAll(results_1);
pageViewObject.setRowList(results);
pageViewObject.setTotalCount(totalSize);
pageViewObject.setPerPageCount(perPageCount);
return pageViewObject;
}


这是hibernate的自带分页吧?我在查询的时候用这个分页,数据量小(300条内)的时候就能显示在页面,当数据量大(上千条)的时候事物就自动回滚了(我打印了下时间执行分页前后数据量多的时候用了90多秒),后台显示这个:
2011-11-15 12:21:52 org.objectweb.jotm.TransactionImpl timeoutExpired
信息: set rollback only (tx=bb14:38:0:0100b496591fb984b3...0f7005:)
org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is net.sf.hibernate.TransactionException: Commit failed with exception:
net.sf.hibernate.TransactionException: Commit failed with exception:
at net.sf.hibernate.transaction.JTATransaction.commit(JTATransaction.java:61)
at org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:472)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:397)
at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:243)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:66)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy20.getWholeSheetAlerts(Unknown Source)
at com.hollycrm.unicom.sheet.monitor.web.SheetMonitorAction.execTotalSheetMonitor(SheetMonitorAction.java:312)
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:324)
at com.hollycrm.springframework.web.struts.DispatchActionSupport.dispatchMethod(DispatchActionSupport.java:327)
at com.hollycrm.springframework.web.struts.DispatchActionSupport.execute(DispatchActionSupport.java:226)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.hollycrm.springframework.web.filter.RequestEncodeFilter.doFilter(RequestEncodeFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
Caused by: javax.transaction.RollbackException
at org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:228)
at org.objectweb.jotm.Current.commit(Current.java:475)
at net.sf.hibernate.transaction.JTATransaction.commit(JTATransaction.java:56)
... 37 more

页面有时出500 显示:
HTTP Status 500 - Dispatch[/monitor] to method totalSheetMonitor returned an exception

--------------------------------------------------------------------------------

type Status report

message Dispatch[/monitor] to method totalSheetMonitor returned an exception

description The server encountered an internal error (Dispatch[/monitor] to method totalSheetMonitor returned an exception) that prevented it from fulfilling this request.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.9
...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MC-热狗 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dzfking007 的回复:]
单单针对hibernate来说,肯定没问题,分页还不如自己写
[/Quote]
我找到问题了 是分页中有个集合遍历 后来改了就好了 那分页不是我写的 别人要求用那个分页
飞子 2011-12-05
  • 打赏
  • 举报
回复
单单针对hibernate来说,肯定没问题,分页还不如自己写
chabale 2011-12-05
  • 打赏
  • 举报
回复
应该是你事物这一块有问题吧。。。
h54068650 2011-12-05
  • 打赏
  • 举报
回复
自己写个分页不难吧?LZ,要不试试自己写个?
qqss84 2011-12-04
  • 打赏
  • 举报
回复
遇到同样的问题
Caused by: javax.transaction.RollbackException
at org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:325)
at org.objectweb.jotm.Current.commit(Current.java:452)
at org.ow2.easybeans.transaction.interceptors.CMTRequiredTransactionInterceptor.intercept(CMTRequiredTransactionInterceptor.java:154)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧