JPA中使用事务的两种方式

来源:互联网 发布:logback.xml不打印sql 编辑:程序博客网 时间:2024/05/02 02:05

1、注解方式实现

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

@Transactional(value="transactionManager", rollbackFor = Exception.class)

但是我不知道为什么,总是会出现不生效的情况。

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("[制卡动作]更新卡状态为制卡审批通过失败。");}
0 0
原创粉丝点击