本帖最后由 bess 于 2012-9-27 16:29 编辑
视图使用的是sql代码模式,保存报错:org.hibernate.exeption.Generic.JDBCException:Could not execute JDBC batch update
我的sql代码是这样写的:
var sql = "";
var sw = "";
var andStr = "";
sql = "select * from tlk_FM_TSJB where (statelabel = '部门处理' or statelabel = '无法执行' or statelabel = '执行完毕') ";
var type = getItemValueAsString("type");
var search_title = getItemValueAsString("search_title");
var search_start_time = getItemValueAsString("search_start_time");
var search_end_time = getItemValueAsString("search_end_time");
var user = getWebUser();
var roleList = user.getRolelist();
if(null!=search_title&&search_title.trim().length()>0)
{
andStr +=" item_title like '%"+search_title+"%' and ";
}
if(null!=search_start_time&&search_start_time.trim().length()>0)
{
andStr +=" CREATED>=to_date('"+search_start_time+"','yyyy-mm-dd') and ";
}
if(null!=search_end_time&&search_end_time.trim().length()>0)
{
andStr +=" CREATED<=to_date('"+search_end_time+"','yyyy-mm-dd') and ";
}
if(null!=type&&type.trim().length()>0)
{
sw +=" item_jb_type = '"+type+"' or ";
}else{
var num = roleList.indexOf("11e1-e794-366cc71f-ba1f-b158310cfd03");
if(roleList.indexOf("11e1-e794-366cc71f-ba1f-b158310cfd03") > 0){
sw +=" item_jb_type = '1' or ";
}
if(roleList.indexOf("11e1-e794-419c16f0-ba1f-b158310cfd03") > 0){
sw +=" item_jb_type = '2' or ";
}
if(roleList.indexOf("11e1-e794-4b172711-ba1f-b158310cfd03") > 0){
sw +=" item_jb_type = '3' or ";
}
if(roleList.indexOf("11e1-e794-55adb952-ba1f-b158310cfd03") > 0){
sw +=" item_jb_type = '4' or ";
}
}
if (sw.length > 0){
sw = " and (" + sw.substring(0,sw.length-3) + ")";
}
if (andStr.length > 0){
andStr = "and "+ andStr.substring(0,andStr.length-4) ;
}
sql = sql + andStr+sw;
println(sql);
sql;
保存后报错,如果sql脚本去掉一半,就可以保存,后台日志报如下错误:
java.lang.Exception: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at cn.myapps.base.dao.PersistenceUtils.commitTransaction(PersistenceUtils.java:131)
at cn.myapps.base.ejb.AbstractDesignTimeProcessBean.doUpdate(AbstractDesignTimeProcessBean.java:206)
at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$dcfaff98.CGLIB$doUpdate$17(<generated>)
at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$dcfaff98$$FastClassByCGLIB$$f933d6df.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
at cn.myapps.protection.util.WarpProcessFactory.intercept(WarpProcessFactory.java:222)
at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$dcfaff98.doUpdate(<generated>)
at cn.myapps.base.ejb.AbstractDesignTimeProcessBean.doCreateOrUpdate(AbstractDesignTimeProcessBean.java:300)
at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$dcfaff98.CGLIB$doCreateOrUpdate$29(<generated>)
at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$dcfaff98$$FastClassByCGLIB$$f933d6df.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
at cn.myapps.protection.util.WarpProcessFactory.intercept(WarpProcessFactory.java:222)
at cn.myapps.core.dynaform.view.ejb.ViewProcessBean$$EnhancerByCGLIB$$dcfaff98.doCreateOrUpdate(<generated>)
at cn.myapps.base.action.BaseAction.doSave(BaseAction.java:160)
at cn.myapps.core.dynaform.view.action.ViewAction.doSave(ViewAction.java:804)
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 com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
字数限制,此处省略部分。。。
Caused by: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at cn.myapps.base.dao.HibernateBaseDAO.commitTransaction(HibernateBaseDAO.java:755)
at cn.myapps.base.dao.PersistenceUtils.commitTransaction(PersistenceUtils.java:129)
... 70 more
Caused by: java.sql.BatchUpdateException: ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10656)
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.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)
at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)
at oracle.jdbc.internal.OraclePreparedStatement$$EnhancerByProxool$$343883c9.executeBatch(<generated>)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
... 79 more |