ssh与jbpm4的整合中,在通过hibernate创建数据库表时,方言的设置为:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
可以解决Jbpm4在结束任务后,抛出的异常:
org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#1]
但是一般都设置为:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQDialect</prop>
这样设置,如果是新创建jbpm4对应的数据表时,会抛出异常:
Caused by: org.jbpm.api.JbpmException: no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the install tool.
at org.jbpm.pvm.internal.cmd.CheckDbCmd.execute(CheckDbCmd.java:50)
注:为了解决这两个异常,则应该做如下的设置:
先设置方言为:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQDialect</prop>
待数据库创建好后,再把方言改为:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
这样就可以解决这个问题了。