
1. 确保工程中启用了事务
2.确保在方法上添加了事务注释
这两点在系统中都已经添加,但还是不生效,查看spring jpa的文档发现确实是支持jpa的事务和jdbc的事务 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/jpa/JpaTransactionManager.html ,通过debug发现Jpa的事务处理主要在JpaTransactionManager.doBegin中,在执行时会判断是否使用jdbc的事务;
系统中指定了JpaTransactionManager但没有指定JpaDialect,如果不指定默认给的是DefaultJpaDialect,而DefaultJpaDialect中并不会对JdbcConnection做处理,所以就导致了jdbc事务无法提交,解决办法也比较简单手动指定jpaDialect为HibernateJpaDialect;
不能进行JPA交易Java Persistence API
Java Persistence API (JPA)是存取Java关系数据的企业级标准。JPA为Java对象映射到数据库图解提供支持,包括一个简单的API设计和查询语言的表达,查询语言的...
公共服务局
用于持久性(JPA)、事务处理(JTA) 和管理(JMX) 的广泛的 Spring 集成 包含高级对象-持久性和对象-转换 *** 作所用的 Oracle TopLink
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)