Clojure JDBC事务未在HSQL中的BatchUpdateException上回滚

Clojure JDBC事务未在HSQL中的BatchUpdateException上回滚,jdbc,clojure,hsqldb,apache-commons-dbcp,Jdbc,Clojure,Hsqldb,Apache Commons Dbcp,我正在使用Clojure.java.jdbc编写Clojure程序。我正在使用DBCP来汇集到HSQL 2.2.8的连接。我有一个(事务)块,在其中测试模式是否存在,如果不存在,则创建它和一组表。schema create之后的一条语句(我相信是MERGE语句)抛出了BatchUpdateException 问题是模式创建不会在BatchUpdateException上回滚,即使它们是同一(事务)块的一部分 Clojure JDBC与DBCP或HSQL交互时是否存在已知问题?没关系 显然,事务不

我正在使用Clojure.java.jdbc编写Clojure程序。我正在使用DBCP来汇集到HSQL 2.2.8的连接。我有一个(事务)块,在其中测试模式是否存在,如果不存在,则创建它和一组表。schema create之后的一条语句(我相信是MERGE语句)抛出了BatchUpdateException

问题是模式创建不会在BatchUpdateException上回滚,即使它们是同一(事务)块的一部分

Clojure JDBC与DBCP或HSQL交互时是否存在已知问题?

没关系


显然,事务不适用于模式更改。WTF?

结构(架构)更改不会在某些数据库上回滚。例如,它们可以在MS SQL上运行,但不能在Oracle上运行。因为这两种行为都可以说,所以最好检查数据库中使用的是哪个版本