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事务不生效原因的主要内容,如果未能解决你的问题,请参考以下文章