activiti 保存部署时 数据库插入错误

jfeng1141 2016-07-13 08:59:34
环境 maven+spring + mybatis3.2.6 + activiti5.21.0 +sqlserver2005
public void test() {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.name("helloworld入门程序")
.addClasspathResource("repository/TestProcess.bpmn")
.addClasspathResource("repository/TestProcess.png")
.deploy();
}

环境没问题,都能运行:用户、组、Task 都能操作,我尝试部署流程的时候数据库插入出错
意思好像是参数设置出错,为什么呀,要怎么办,是数据库不支持吗,还是mybatis版本问题,或者是activiti版本太新了。
SERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) , (?, 1, ?, ?, ?, ?) 
DEBUG - ==> Parameters: 27502(String), repository/TestProcess.png(String), java.io.ByteArrayInputStream@7ffc6e23(ByteArrayInputStream), 27501(String), false(Boolean), 27503(String), repository/TestProcess.bpmn(String), java.io.ByteArrayInputStream@15a2fd7a(ByteArrayInputStream), 27501(String), false(Boolean)
DEBUG - Error while closing command context
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: ',' 附近有语法错误。
### The error may involve org.activiti.engine.impl.persistence.entity.ResourceEntity.bulkInsertResource-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) , (?, 1, ?, ?, ?, ?)
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: ',' 附近有语法错误。
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:26)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:154)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:141)
at org.activiti.engine.impl.db.DbSqlSession.flushBulkInsert(DbSqlSession.java:850)
at org.activiti.engine.impl.db.DbSqlSession.flushPersistentObjects(DbSqlSession.java:820)
at org.activiti.engine.impl.db.DbSqlSession.flushInserts(DbSqlSession.java:797)
at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:618)
at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:212)
at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:138)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:66)
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:37)
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40)
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35)
at org.activiti.engine.impl.RepositoryServiceImpl.deploy(RepositoryServiceImpl.java:79)
at org.activiti.engine.impl.repository.DeploymentBuilderImpl.deploy(DeploymentBuilderImpl.java:156)
at test.Test.test(Test.java:36)

求大神们给点意见。数据库应该不能换了,公司用的。
...全文
271 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlf826796931 2018-07-20
  • 打赏
  • 举报
回复
引用 3 楼 jfeng1141 的回复:
找到问题了,就是sqlserver2005 不支持同时插入多条数据,最后就该了activiti源码包内的mapping解决问题

大佬合一告诉我你是怎么修改的吗,我也是出现这个问题

### Error updating database. Cause: java.sql.SQLException: 网络通信异常
### The error may involve org.activiti.engine.impl.persistence.entity.ResourceEntity.bulkInsertResource_oracle-Inline
### The error occurred while setting parameters
jfeng1141 2016-07-13
  • 打赏
  • 举报
回复
引用 1 楼 sinat_31240689 的回复:
INSERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) , (?, 1, ?, ?, ?, ?) 这里边有个‘1’看见没?
INSERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_)
 VALUES (?, 1, ?, ?, ?, ?) , (?, 1, ?, ?, ?, ?) 
DEBUG - ==> Parameters: 27502(String), repository/TestProcess.png(String), java.io.ByteArrayInputStream@7ffc6e23(ByteArrayInputStream), 27501(String), false(Boolean), 
27503(String), repository/TestProcess.bpmn(String), java.io.ByteArrayInputStream@15a2fd7a(ByteArrayInputStream), 27501(String), false(Boolean)
那个‘1’不影响 一共有10个占位符,后面也跟了10个参数
  • 打赏
  • 举报
回复
INSERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) , (?, 1, ?, ?, ?, ?) 这里边有个‘1’看见没?
jfeng1141 2016-07-13
  • 打赏
  • 举报
回复
找到问题了,就是sqlserver2005 不支持同时插入多条数据,最后就该了activiti源码包内的mapping解决问题

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧