日期:2014-05-16  浏览次数:20714 次

JBPM4连接HSQLDB数据库
数据库配置文件:
jbpm.hibernate.cfg.xml

<hibernate-configuration>
<session-factory>
 
        <property name="show_sql">true</property>
 
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<!-- <property name="hibernate.connection.url">jdbc:hsqldb:mem:.</property> -->
<property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost/jbpm</property>
<property name="hibernate.connection.username">SA</property>
<property name="hibernate.connection.password"></property>
<!-- <property name="hibernate.hbm2ddl.auto">create-drop</property> -->
<!-- <property name="hibernate.format_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>

1、默认配置是以memory-only方式连接HSQLDB数据库,注意hibernate.hbm2ddl.auto配置的是create-drop,该配置作用是由model对象来创建表结构,所以以这种方式运行时不需要创建数据表。但是在hibernate关闭后,会使将表删除,造成数据丢失;

2、报错:A pre-9.0 client attempted to connect. We rejected them.
由于memory-only数据库无法用工具连接查看数据,所以改成WebServer方式;
再使用WebServer模式启动HSQLDB时,连接数据库时报A pre-9.0 client attempted to connect. We rejected them错误。
原因是,我的HSQLDB版本是2.2.8,而JBPM自带的HSQLDB.JAR的版本是1.8.x。所以使用2.2.8的hsqldb.jar覆盖JBPM自带的hsqldb.jar即可;
这样就需要手动创建表结构了,脚本位于jbpm-4.4\install\src\db\create\jbpm.hsqldb.create.sql