2017.5.27 使用propagation实现:根据参数决定是否需要事务管理

1.功能描述

要实现rest接口:POST ***/entry,其中参数中有action参数。

1 当action=rollback时,批量新增出错时需要回滚。
2 当action!=rollback时,批量新增出错时跳过,处理下一条记录。

2.spring事务管理的注解式实现

之前总结过完整的spring事务管理:2017.4.18 慕课网-spring事务管理总结

1 @Transactional注解属性配置:不写的时候按默认值配置。
2 * propagation : 事务的传播行为。
3 * isolation:事务的隔离级别。
4 * readOnly:false/true,只读,数据库不可以进行插入、修改、删除等操作。
5 * rollbackFor:发生哪些异常时进行事务回滚。
6 * noRollbackFor:发生哪些异常时不进行事务回滚。
7 * time-out:过期信息。
8
9 @Transactional(propagation=Propagation.REQUIRED, isolation=Isolation.DEFAULT, readOnly=false,...)

3.功能实现

参考来自:http://blog.sina.com.cn/s/blog_667ac0360102ebem.html

3.1 类上加@Transactional注解

3.2 方法上加@Transactional(propagation=Propagation.NOT_SUPPORTED)

时间: 2024-08-16 10:41:26

2017.5.27 使用propagation实现:根据参数决定是否需要事务管理的相关文章

【第三组】冲刺会议 2017.7.27

冲刺会议 日期:2017.7.27 开发小组:Geomestry 冲刺经理:程立智 成员: 程立智 李明伦 郑昊 蔡镇泽 温志成 汪涵 成员:程立智 完成工作:实现多语言在app内即时切换,继续解决bug 所遇问题: 语言在app内即时切换时第一次点击没反应(已解决) 下一步工作: 继续实现各种界面的细节和前后端的联系,解决大家遇到的各种系统bug 成员:李明伦 完成工作:设计关卡内容 所遇问题:胜利条件不好写 下一步工作:继续设计关卡内容 成员:郑昊 完成工作:做主界面图片,option自适应

2017/04/27学习笔记

fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数执行另一个程序.当进程调用一个exec函数时,该进程的用户空间和数据完全被新程序替换,从新程序的启动例程开始执行.调用exec并不创建新进程,所以调用exec前后该进程ID不变.将当前进程的.text .data替换为所要加载程序的.text .data,然后让进程从新的.text第一条指令开始执行,但进程ID不变,换核不换壳. int execl();int execlp();int

Git本地仓库使用——2017.07.27

今天主要是使用Git从远程仓库下载代码库,主要熟悉了这样几个命令. $ cd d:git //盘符切换 $ mkdir delta //创建delta目录 $ pwd //显示当前目录 $ git init //库初始化,意思就是将这个库当做 $ git clone https://github.com/coreywei/delta //从远程代码地址克隆代码下来 $ git status //用来查询git仓库状态 $ git checkout // 检出,创建分支与切换分支 $ git br

2017.7.27 logback配置文件

参考来自: Java深入 - logback的配置和使用 1 模块组成 logback分成三个模块:logback-core,logback- classic和logback-access. 1 logback-core:其他两个的基础模块. 2 logback-classic:log4j的改良版本.完整实现slf4j的api,因此可以很方便的换成其他日志系统. 3 logback-access:与servlet集成,提供通过http来访问日志的功能. 2 maven依赖 <dependency

python日记----2017.7.27

装饰器: 什么事装饰器: 器即函数 装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 装饰器需要遵循的原则: 1.不修改被装饰函数的源代码(开放封闭原则) 2.为被装饰函数添加新功能后,不修改被修饰函数的调用方式 装饰器的组成: 装饰器=高阶函数+函数嵌套+闭包 高阶函数定义: 1.函数接收的参数是一个函数名 2.函数的返回值是一个函数名 3.满足上述条件任意一个,都可称之为高阶函数 无参装饰器=高级函数+函数嵌套 基本框架: def timer(fun

2017.9.27

3.4.3新属性的设置和获取 对于getpParamter方法是通过参数传递获得数据, 设置数据的方法格式: void  request.setAttribute("key",Object); 其中,参数key是键,为String类型,属性名字:参数object是键值,为Object类型,他代表需要保存在request范围内的数据: 获取数据的方法格式: Object request.getAttribute(String name); 其中,参数name表示键名,所获取的数据类型是由

2017/03/27学习笔记

程序的输入是指从输入文件讲数据传送给程序,程序的输出是指从程序将数据传送输出文件.C++输入输出包含以下三方面内容:对系统指定标准设备的输入和输出.即从键盘输入数据,输出到显示器.这种输入输出称为标准输入输出,简称标准IO.以外出磁盘文件为对象进行输入输出,即从磁盘文件输入数据,将数据输出到文件.以外存为对象的输入输出称为文件的输入输出,简称文件IO.度内存中指定的空间进行输入输出,通常指定一个字符串数组作为储存空间(实际上可以利用该空间储存任何信息).这种输入输出称为字符串输入输出,简称串IO

阅读笔记二2017.1.27

之前看了前三章对软件工程有了大致认识,对个人开发的流程及软件工程师的成长过程有了比以前更清晰的了解. 这一周重点阅读了第四章,本章讲了两人合作的前提是代码要规范(包括代码风格规范及代码设计规范)及代码复审,然后才能结对开发. 大学一年交了很多代码作业,但质量仅仅是完成了而已,对于缩进.行宽.括号.与大括号.分行等都没太注意过,觉着有了结果就好了.而对于命名更是越短越好,过后也就知道写过的代码是什么意思了.以前,写代码时,很多时候是上手就写,一个大括号包含所有内容,虽然大一时学过函数.类等知识,

2017.08.27

任务安排:基于Cyclone IV的基本代码编写及硬件实现: 1:Verilog hdl的运算符 2.简单程序编写:(输入利用接口key,ckey,输出利用led可以直接观测到输出结果) 2.1与门 module ND(a,b,c); input a,b; output c; assign c=a&b; endmodule 2.2与非门 module NAND(a,b,c) input a,b; output c; assign c=~(a&b); endmodule 2.3二选一 mod