JPA事务不生效原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA事务不生效原因相关的知识,希望对你有一定的参考价值。

参考技术A # 默认的引擎是mysql5Dialect,不支持事务,只有引擎是InnoDB的时候才支持事务

# 下面两个配置用哪个都可以

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

jpa中怎样使用between

1、注解方式实现

在方法或者类前面加上下面注解

@Transactional(value="transactionManager", rollbackFor = Exception.class)
1
1
但是我不知道为什么,总是会出现不生效的情况。

2、手动提交方式实现

/**
* JpaTransactionManager事务管理 .
*/
@Resource(name = "transactionManager")
JpaTransactionManager tm;

//事务开始
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
def.setTimeout(30);
//事务状态
TransactionStatus status = tm.getTransaction(def);
try
//此处写持久层逻辑
tm.commit(status);
catch (Exception e)
logger.error("出现异常,事务回滚", e)
if(!status.isCompleted())
tm.rollback(status);

throw new BusinessException("[制卡动作]更新卡状态为制卡审批通过失败。");
参考技术A Query queryEmployeeByFirstName = entityManager.createQuery( "SELECT OBJECT(emp) FROM Employee emp WHERE emp.firstName = :firstname");queryEmployeeByFirstName.setParameter("firstName", "Joan");Collection employees = queryEmployeeByFirstName.getResultList(); 参考技术B 这个没有研究过

以上是关于JPA事务不生效原因的主要内容,如果未能解决你的问题,请参考以下文章

spring事务不生效原因

Springboot 事务回滚不生效可能出现的原因

fix bug:Spring中事务不生效的问题

为啥在aop里面的事务不生效

Spring中同一个service中方法相互调用事务不生效问题解决方案

AOP切面不生效场景