Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql withTransaction不';无法正确执行回滚_Mysql_Grails_Transactions_Spring Transactions - Fatal编程技术网

Mysql withTransaction不';无法正确执行回滚

Mysql withTransaction不';无法正确执行回滚,mysql,grails,transactions,spring-transactions,Mysql,Grails,Transactions,Spring Transactions,在我的Person controller删除操作中,我希望如果发生DataIntegrityViolationException,那么关联的权限记录将被恢复,但不会恢复。我真的不需要做显式回滚,但是不管有没有它,回滚都不会发生。withTransaction回滚似乎不起作用。还是我做错了什么?我正在使用Grails1.3.7和MySQL(innodb) 更新 我意识到我的一些桌子上没有innodb。我纠正了这一点,起初看起来问题已经解决了。我可以尝试删除用户记录,获取错误,然后作为该用户登录。在

在我的Person controller删除操作中,我希望如果发生DataIntegrityViolationException,那么关联的权限记录将被恢复,但不会恢复。我真的不需要做显式回滚,但是不管有没有它,回滚都不会发生。withTransaction回滚似乎不起作用。还是我做错了什么?我正在使用Grails1.3.7和MySQL(innodb)

更新

我意识到我的一些桌子上没有innodb。我纠正了这一点,起初看起来问题已经解决了。我可以尝试删除用户记录,获取错误,然后作为该用户登录。在此之前,登录失败并出现此错误,这意味着权限记录尚未回滚

ERROR springsecurity.GrailsDaoImpl  - User [admin9] has no GrantedAuthority

所以一切看起来都很好。然后我重新启动了我的应用程序,尝试登录,但再次出现错误。因此,即使回滚看起来起作用,记录也不会持久化到数据库中

您是否可以从另一个事务执行此代码?也许,从服务方法来看,默认情况下是事务性的


MySQL不支持嵌套事务。

事实证明,并非我的所有表都支持innodb。权威最终变成了ISAM。我不知道这是怎么发生的。
ERROR springsecurity.GrailsDaoImpl  - User [admin9] has no GrantedAuthority