Activiti 6 踩坑日记


在使用Activiti 6的过程中,发现Activiti 6存在一些坑,开个帖子记录一下,各位同学在使用过程中可以尽量避免。

Activiti 6现在是6.0.0版本,官方好像不维护了,一直没有新版本。现在官方在活跃开发的是7.x版本,以后有机会了我会升级到7.x版本,看看这些问题还有没有。

1、不要在DelegateTask和其所属的Execution中设置同名的本地变量

如果在DelegateTask和其所属的Execution中设置同名的本地变量,Activiti在删除Execution时可能会抛出异常java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`XXX_SCHEMA_NAME`.`act_ru_variable`, CONSTRAINT `ACT_FK_VAR_EXE` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`))。

可能引发错误的示例代码:

delegateTask.getExecution().setVariableLocal("var1","1");
delegateTask.setVariableLocal("var1","2");
// 然后在调用TaskService.complete()时可能会抛出上面的异常

这个问题已经在我的另一篇文章《解决Activiti异常java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails》中得到了解决,解决之后,就不需要遵守该限制了。


发表回复

您的电子邮箱地址不会被公开。

正在检测……