activiti监听器远程执行数据库的问题

一个流程结束了 要执行一个监听器更改数据库
比如这里通过流程号吧状态改成已完成
然后就报错了

Caused by: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='YJ2', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #4 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: Parameter index out of range (4 > number of parameters, which is 3).

触发器代码如下

@Component
public class Taskdev implements ExecutionListener{



        @Override
        public void notify(DelegateExecution delegateExecution) throws Exception {
                 MyfukuanManager myfukuanService=SpringUtil.getObject(MyfukuanManager.class);
                PageData pd = new PageData();

                SimpleDateFormat sdc = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
                Date date = new Date();
                String dateSt = sdc.format(date);

                String eventName = delegateExecution.getEventName();
                if ("end".equals(eventName)) {
                        System.out.println("end=========");
                        delegateExecution.getId();
                        pd.put("YJ5", delegateExecution.getId());//流程号
                        pd.put("ENDTIME", dateSt);            //结束时间
                        pd.put("YJ4", "已完成");
                        System.out.println(pd);//特地打出来看看数据
                        myfukuanService.lcinfo(pd);//到这一步就报错了
                }

        }
}

sql语句如下


	<!-- 结束流程 -->
	<update id="end" parameterType="pd">
		update
		<include refid="tableName"></include>
		set
		ENDTIME = #{ENDTIME,jdbcType=VARCHAR},
		YJ4 = #{YJ4,jdbcType=VARCHAR},
# 		YJ3 = #{YJ3},
# 		YJ2 = #{YJ2},
# 		YJ1 = #{YJ1}
		where
		YJ5 = #{YJ5,jdbcType=VARCHAR}
	</update>

最后怎么解决的
去掉sql里注释就好了
看来有时候,注释还是不如删除有用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值