在JDK1.5下面不能使用BigDecimal,但在JDK1.4下面却能用,是这样的吗?
解决方案 »
- velocity 在Myeclipse中如何配置?
- 使用js的open函数打开的窗口,关闭的时候刷新父页面?
- grails中确认密码功能如何实现
- 如何模糊查询被加密的字段?
- js 设置object的movie路径问题,简繁体切换问题
- 用javascript如何实现可以隐藏行的表格,当点击"+"时又可以显示该行
- JAVA初学,问一下SERVLET的问题!
- 在linux上drawString乱码
- 急!高手请进:关于Applet显示的问题
- 请大虾帮我看看这句 InputStream is = getClass().getResourceAsStream("/db.properties");
- 你是怎么考虑session的?
- 问个简单的问题
JAVA是高度向前兼容的
类 BigDecimal
java.lang.Object
java.lang.Number
java.math.BigDecimal
所有已实现的接口:
Serializable, Comparable<BigDecimal>
Session session = HibernateUtil.getSession();
String queryStr1 = "select max(no) as no from table where type = '"
+ type + "'";
Query query = session.createSQLQuery(queryStr1).addScalar("no",
Hibernate.BIG_DECIMAL);
Object result = query.uniqueResult();
log.info(">>>After query:");
[color=#FF0000] BigDecimal returnResult = (BigDecimal) result; log.info(">>>returnResult TEST11:");
returnResult = returnResult.add(new BigDecimal(1));
log.info(">>>returnResult:"+returnResult);
return returnResult;
}[/color]
2009-11-25 16:13:56 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] [org.hibernate.transaction.JDBCTransaction] [ERROR] - Could not toggle autocommit
org.hibernate.HibernateException: Session is closed
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:130)
at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java:174)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:122)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:95)
at com.dit.util.HibernateUtil.commitTransaction(HibernateUtil.java)
at com.dit.util.HibernateFilter.doFilter(HibernateFilter.java)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:644)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:423)
at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:154)
at jsp_servlet.__master._jspService(__master.java:150)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at com.dit.util.HibernateFilter.doFilter(HibernateFilter.java)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:326)
at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:535)
at weblogic.servlet.internal.WebAppServletContext.handleException(WebAppServletContext.java:4188)
at weblogic.servlet.internal.WebAppServletContext.handleThrowableFromInvocation(WebAppServletContext.java:3966)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3908)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
“BigDecimal returnResult = (BigDecimal) result;”
时就报错如上,给人的感觉的数据库连接的问题。
1. 程序中有其它模块连的是相同数据库,都可以正常运行
2. 将JDK由1.5换成1.4后这个问题就好了
所以才想跟大家确认一下是否遇到过类似问题。
Thanks!
应该是这句的问题吧jdk1.4里面BigDecimal不支持int的构造函数。
1.4后就支持啦,改为:returnResult = returnResult.add(new BigDecimal(1.0));
我看了一下,是session已经关闭了
也就是说hibernate的lazy的问题