首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

JBPM使用SQLServer2005整合SSH时的若干有关问题

2012-10-17 
JBPM使用SQLServer2005整合SSH时的若干问题如果你使用的MSSQL数据库就比较不幸了,因为jbpm-4.3\install\sr

JBPM使用SQLServer2005整合SSH时的若干问题
如果你使用的MSSQL数据库就比较不幸了,因为jbpm-4.3\install\src\db\create包里没有提供对于MSSQL的.sql文件,这时需要使用任意一个.sql文件进行转换。比如我这里使用的就是jbpm.mysql.create.sql文件。在powerdesigner里先建库然后在反向映射成model,再根据model建立MSSQL的数据库。建好库后还要插入jbpm-4.3\install\src\demo\example.identities.sql的数据。
接下来首先配置XML文件。直接给出需要的所有配置。
applicationContext.xml


以上需要注意的地方是

而不是传统的要额外配置jbpm.hibernate.cfg.xml,这样我们就省了jbpm.hibernate.cfg.xml文件了。

log4j.properties
### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### direct messages to file hibernate.log ####log4j.appender.file=org.apache.log4j.FileAppender#log4j.appender.file.File=hibernate.log#log4j.appender.file.layout=org.apache.log4j.PatternLayout#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=warn, stdout#log4j.logger.org.hibernate=info#log4j.logger.org.hibernate=debug### log HQL query parser activity#log4j.logger.org.hibernate.hql.ast.AST=debug### log just the SQL#log4j.logger.org.hibernate.SQL=debug### log JDBC bind parameters ####log4j.logger.org.hibernate.type=info#log4j.logger.org.hibernate.type=debug### log schema export/update ###log4j.logger.org.hibernate.tool.hbm2ddl=debug### log HQL parse trees#log4j.logger.org.hibernate.hql=debug### log cache activity ####log4j.logger.org.hibernate.cache=debug### log transaction activity#log4j.logger.org.hibernate.transaction=debug### log JDBC resource acquisition#log4j.logger.org.hibernate.jdbc=debug### enable the following line if you want to track down connection ###### leakages when using DriverManagerConnectionProvider ####log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=tracehandlers= java.util.logging.ConsoleHandlerredirect.commons.logging = enabledjava.util.logging.ConsoleHandler.level = FINESTjava.util.logging.ConsoleHandler.formatter = org.jbpm.internal.log.LogFormatterorg.jbpm.level=FINESTorg.jbpm.pvm.internal.tx.level=FINEorg.jbpm.pvm.internal.wire.level=FINEorg.jbpm.pvm.internal.util.level=FINEorg.hibernate.level=FINEorg.hibernate.cfg.SettingsFactory.level=SEVEREorg.hibernate.cfg.HbmBinder.level=SEVEREorg.hibernate.SQL.level=FINESTorg.hibernate.type.level=FINEST# org.hibernate.tool.hbm2ddl.SchemaExport.level=FINEST# org.hibernate.transaction.level=FINEST

最基本的配置只需要这2个就好了。
web.xml里有了SPRING的配置也基本不需要再动了。
最后再说一下数据转换的问题。
我的数据库用的是MSSQL2005,根据jbpm.mysql.create.sql建好了对应的表并插入了数据。但是现在当程序执行到repositoryService.createDeployment().addResourceFromClasspath("leave.jpdl.xml").deploy();
时报了org.hibernate.exception.SQLGrammarException: could not insert: [org.jbpm.pvm.internal.lob.Lob]
说是com.microsoft.sqlserver.jdbc.SQLServerException: 操作数类型冲突: varbinary 与 ntext 不兼容。这时就需要改一下字段属性了。
修改jbpm_lob表里的BLOB_VALUE_,把ntext改为nvarchar(MAX)就OK了。

热点排行