首先,保证正常配置Spring 和Hibernate 之后(并且正确配置Spring的事务之后),如果出现操作两张表第一张没有抛出异常,第二张抛出异常,最后结果是第一张数据表保存成功,第二张保存失败,但是我们要求的是一张不成功,那么所有回滚。
如果没有回滚成功,就去查看MYSQL中的数据表类型,InnoDB 和 MyISAM ,要将数据表换成InnoDB 。两者的大概区别是:前者着重处理事务,后者着重在于执行效率。
如果要实现上述逻辑那么就要使用InnoDB (处理事务的数据表),也可以在创建表的时候设置Hibernate的数据库方言 org.hibernate.dialect.MySQL5InnoDBDialect
这样就可以了。
自己在做的时候出现的问题,解决了好久才找到原因,希望也对其他人有帮助,如果说的不对的地方,希望及时指出,谢谢!