@JFinal 你好,想跟你请教个问题:Jfinal执行事务在Sybase create/alter语句出错:
com.jfinal.plugin.activerecord.ActiveRecordException: com.sybase.jdbc3.jdbc.SybSQLException: The 'ALTER TABLE' command is not allowed within a multi-statement transaction in the 'TEST' database.
at com.jfinal.plugin.activerecord.DbPro.update(DbPro.java:279)
at com.jfinal.plugin.activerecord.DbPro.update(DbPro.java:290)
at com.suntek.iccmgr.cust.util.TransactionUtil$2.run(TransactionUtil.java:63)
at com.jfinal.plugin.activerecord.DbPro.tx(DbPro.java:644)
at com.jfinal.plugin.activerecord.DbPro.tx(DbPro.java:680)
<p style="font-size:13.3333px;">
但是数据源是Oracle的话是可以执行成功的,请问是什么问题导致的呢?
</p>
错误提示已经很明确了:无法在"TEST"数据库的多语句事务中执行"ALTERTABLE"命令,去掉事务试试回复<aclass='referer'target='_blank'>@JFinal:好的,我自己再研究一下,谢谢啦~回复<aclass='referer'target='_blank'>@codeRunner:jfinal未对此进行过任何干预,所以只能是从jdbc或数据库层面尝试解决回复<aclass='referer'target='_blank'>@codeRunner:这个应该是jdbc或者数据库不支持,在jfinal层面只能尝试DbKit.getConfig().getConnection()拿到Connection对象,或者通过getDataSource()拿到dataSource对象,或者通过改变数据库的配置来实现去掉事务单独执行是可以的,我是想在事务里面同时执行一批create/alter语句,有没有什么方法可以实现?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。