12 Ekim 2010 Salı

JBPM 4.4 ile MySQL

JBPM 4.4 ile çalışırken veritabanınızı HSQL'den MySQL'e çevirirseniz. "jbpm.hibernate.cfg.xml" dosyanızı değiştirmeniz gerekir.

Eğer gerekli değişikliği yaptıktan sonra şu hatayı alıyorsanız:

SEVERE: Cannot delete or update a parent row: a foreign key constraint fails (`jbpm4`.`jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`))


Yapmanız gereken "jbpm.hibernate.cfg.xml" dosyasındaki "MySQLDialect" ifadesini "MySQLInnoDBDialect" ile değiştirmektir. Nihai dosya şöyle birşey olmalıdır:


Değişen dosyanın içeriği şöyle olmalıdır:


<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm4</property>
<property name="hibernate.connection.username">jboss</property>
<property name="hibernate.connection.password">jboss</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.format_sql">true</property>
<!-- property name="hibernate.show_sql">true</property-->


<mapping resource="jbpm.repository.hbm.xml" />
<mapping resource="jbpm.execution.hbm.xml" />
<mapping resource="jbpm.history.hbm.xml" />
<mapping resource="jbpm.task.hbm.xml" />
<mapping resource="jbpm.identity.hbm.xml" />

</session-factory>
</hibernate-configuration>