java.sql.SQLException: sql injection violation, syntax error: TODO UNIQUE unique
@wenshao 你好,想跟你请教个问题:
我是在用activiti工作流的时候 初始化生成流程表产生了下面的问题
工作流引擎代码:
ProcessEngineConfiguration config = ProcessEngineConfiguration
.createStandaloneProcessEngineConfiguration();
config.setDataSource(dataSource).setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE).buildProcessEngine();
报错信息:
Caused by: java.sql.SQLException: sql injection violation, syntax error: TODO UNIQUE unique : alter table ACT_RE_PROCDEF
add constraint ACT_UNIQ_PROCDEF
unique (KEY_,VERSION_, TENANT_ID_)
at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:724)
at com.alibaba.druid.wall.WallFilter.statement_execute(WallFilter.java:396)
at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2487)
at com.alibaba.druid.filter.FilterAdapter.statement_execute(FilterAdapter.java:2451)
at com.alibaba.druid.filter.FilterEventAdapter.statement_execute(FilterEventAdapter.java:188)
at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2487)
at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.execute(StatementProxyImpl.java:137)
at com.alibaba.druid.pool.DruidPooledStatement.execute(DruidPooledStatement.java:421)
at org.activiti.engine.impl.db.DbSqlSession.executeSchemaResource(DbSqlSession.java:1368)
... 32 more
Caused by: com.alibaba.druid.sql.parser.ParserException: TODO UNIQUE unique
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseAlterTable(MySqlStatementParser.java:2375)
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseAlter(MySqlStatementParser.java:2297)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:217)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:145)
at com.alibaba.druid.wall.WallProvider.checkInternal(WallProvider.java:620)
at com.alibaba.druid.wall.WallProvider.check(WallProvider.java:574)
at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:711)
... 40 more
druid版本:1.0.15,1.0.21(测试了这两版本) mysql驱动版本:5.1.32
语句:
alter table ACT_RE_PROCDEF
add constraint ACT_UNIQ_PROCDEF
unique (KEY_,VERSION_, TENANT_ID_)
单独拿出来跑是没有问题的
另:我换了HikariCP 没有出现问题,是不是我对Druid的配置出现了问题
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您解决了没 我现在遇到和您一样的问题 不知道能否从您这得到有用信息哪?
再执行一遍
这个SQL文是activiti工作流自动生成的,我没有办法改掉它
回复
看了一下源码,constraint 后面只支持primary 和 foreign,不支持unique,其实unique和primary差不多,换成primary试试
回复
恩,不过那个SQL文不是我自己生成的,是Activiti工作流自动生成的,我改不了里面的代码哇 。。。。
sql语句换成这种试试