栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Spring @Transactional内部启用JPA保存且多个实体不会回滚,并启用了Exception.class的回滚

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Spring @Transactional内部启用JPA保存且多个实体不会回滚,并启用了Exception.class的回滚

MySQL历史上默认情况下使用MyISAM引擎创建表,该引擎不支持事务。后来添加了支持事务的InnoDB,但是MyISAM在相当长的一段时间内仍然是默认值。

Hibernate的方言遵循相同的默认值,因此MySQL方言的默认值为MyISAM(为了向后兼容)。

您可以通过2种方法来解决此问题:选择特定的方言,或使用特定的属性从MyISAM切换到InnoDB。

要选择一种方言,请使用

spring.jpa.database-platform
来指定所需的依赖关系。

spring.jpa.database-platform=org.hibernate.dialect.MySQL57InnoDBDialect`

或设置属性使用

spring.jpa.properties.hibernate.dialect.storage_engine=innodb

或两者的组合(因为

MySQL57InnoDBDialect
现已存在,因此已弃用
hibernate.dialect.storage_engine
)。

spring.jpa.database-platform=org.hibernate.dialect.MySQL57Dialectspring.jpa.properties.hibernate.dialect.storage_engine=innodb

另请参见:https :
//in.relation.to/2017/02/20/mysql-dialect-
refactoring/



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/514774.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号