Jfinal对Oracle数据库Date类型的字段个人感觉不是很好

来源:互联网 发布:网络专题策划方案 编辑:程序博客网 时间:2024/05/19 13:06

在项目开发当中使用了jfinal框架,数据库使用的是Oracle,在处理一个表字段类型为Date类型的时候,使用Db.save()方法时,保存的时候使用model.set("create_time",new Date());报了以下错误

六月 26, 2017 5:21:49 下午 com.sun.xml.internal.ws.server.sei.EndpointMethodHandler invoke严重: java.sql.SQLException: 无效的列类型com.jfinal.plugin.activerecord.ActiveRecordException: java.sql.SQLException: 无效的列类型at com.jfinal.plugin.activerecord.Model.save(Model.java:413)at com.wlkj.cxf.db.DbImpl.receivePrizeNew(DbImpl.java:7015)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at com.sun.xml.internal.ws.api.server.MethodUtil.invoke(MethodUtil.java:68)at com.sun.xml.internal.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:235)at com.sun.xml.internal.ws.server.InvokerTube$2.invoke(InvokerTube.java:135)at com.sun.xml.internal.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:246)at com.sun.xml.internal.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:85)at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:626)at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:585)at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:570)at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:467)at com.sun.xml.internal.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:299)at com.sun.xml.internal.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:593)at com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:95)at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:80)at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:677)at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:649)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:745)Caused by: java.sql.SQLException: 无效的列类型at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:9168)at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8749)at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:9471)at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:9454)at com.alibaba.druid.pool.DruidPooledPreparedStatement.setObject(DruidPooledPreparedStatement.java:431)at com.jfinal.plugin.activerecord.dialect.OracleDialect.fillStatement(OracleDialect.java:220)at com.jfinal.plugin.activerecord.Model.save(Model.java:407)... 36 more




解决办法:通过转换model.set("create_time", new java.sql.Timestamp(new java.util.Date().getTime()));成功解决了此问题,个人感觉有些麻烦。