类和方法上加事务

package com.yundaex.wms.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Component
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { Exception.class })
public class TestAop {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
    public void test() {
        String sql = " select count(1) from riv_inbound_notice_h where inh_owner_no = ‘425-1‘ ";
        System.out.println(+jdbcTemplate.queryForObject(sql, Integer.class));
    }

    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = { Exception.class })
    public void addData(IWMSC_Order_inboundData  param){
        IWMSC_Order_in_headerData header = param.getHeader();
        List<IWMSC_Order_in_itemData> items = param.getItems();
        if (header==null||!CommonMethodHelper.isCollectionValid(items)) {
            YDAssert.isErrData("入库通知单单头或明细为空");
        }

        WMSC_busi_inboundPO inh = new WMSC_busi_inboundPO();
        List<WMSC_busi_inbound_planPO> inls = new ArrayList<WMSC_busi_inbound_planPO>();
        List<WMSC_stock_matPO> stock_matPOs = new ArrayList<WMSC_stock_matPO>();
        // 业务单流水号
        String doc_id = SerialNumberUtil.getWholeSerialNumber(WMSCConstant.C_ORDER_IN);
        Timestamp d = new Timestamp(System.currentTimeMillis()); 

        getInboundPO(doc_id,d,header,inh);
        getPlanPOs(doc_id,d,header,items,inls,stock_matPOs);

        //保存数据
        save(inh,inls,stock_matPOs);

    }
}
 
时间: 2024-10-10 15:01:31

类和方法上加事务的相关文章

SpringMVC + Spring + MyBatis 学习笔记:在类和方法上都使用RequestMapping如何访问

系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 先看代码: @RequestMapping(value="manager") @Controller("managerController") public class ManagerController { /** * 后台用户登录 * @param request * @param em

Android运行时ART加载类和方法的过程分析

在前一篇文章中,我们通过分析OAT文件的加载过程,认识了OAT文件的格式,其中包含了原始的DEX文件.既然ART运行时执行的都是翻译DEX字节码后得到的本地机器指令了,为什么还需要在OAT文件中包含DEX文件,并且将它加载到内存去呢?这是因为ART运行时提供了Java虚拟机接口,而要实现Java虚拟机接口不得不依赖于DEX文件.本文就通过分析ART运行时加载类及其方法的过程来理解DEX文件的作用. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 在前面An

使用MethodType函数将方法绑定到类或实例上

在开始正文之前,需要了解下Python的绑定方法(bound method)和非绑定方法. 简单做个测试: 定义一个类,类中由实例方法.静态方法和类方法. class ClassA: def instance_method(self): print('instance_method', self) @classmethod def cls_method(cls): print('cls_method', cls) @staticmethod def static_method(): print(

PHP加载另一个文件类的方法

加载另一个文件类的方法 当前文件下有a.php 和b.php,想要在class b中引入class a <?php    class a    {        public $name = 'zhouqi';        public function say()        {            echo 'hello '.$this->name;        }    } <?php    class b    {        //require('a.php'); 错

Effective JavaScript Item 51 在类数组对象上重用数组方法

Array.prototype对象上的标准方法被设计为也可以在其它对象上重用 - 即使不是继承自Array的对象.因此,在JavaScript中存折一些类数组对象(Array-like Objects). 一个典型的例子是函数的arguments对象,在Item 22中对它进行过介绍.该对象并不继承自Array.prototype,所以我们不能直接调用arguments.forEach来对其中的元素进行遍历.但是,我们可以通过首先得到forEach方法的对象,然后调用call方法(可以参考Ite

用MathType在图片上加公式的方法

在文档中编写内容时,用到一些专业的公式的时候我们一般都会用MathType公式编辑器,其编辑出来的公式都是嵌入在文档中的.如果我们需要把公式放在图片上呢?这个时候很多的人都不知道怎么办呢, 其实用MathType公式编辑器也是可以做到的.下面我们就针对这个问题来给大家介绍介绍用MathType在图片上加公式的方法? 具体操作步骤如下: 1.打开MathType公式编辑器,进入到工作界面,利用MathType中的模板与符号进行相关的公式编辑. 2.编辑好公式后,将之复制粘贴到Word文档中.然后右

Java 使用反射获取类、方法、属性上的注释

有的时候我们想使用反射获取某个类的注释.方法上的注释.属性上的注释. 下面是一个简单的例子.里面包括了上面提到的三个点. package com.mine.practice.reflectfield; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.xml.bind.annotation.XmlAccessTy

JAVA中的反射中加载类的方法

反射:加载类的方法有三种, 1.用Class.forName("类名")方法来调用; 2.类名.class得到 3.用对象.getClass()得到 package com.ma.reflection; import org.junit.Test; import com.ma.bean.UserBean; public class Demo1 { /** * 反射:加载类的方法 */ @Test public void test1(){ //1.用Class.forName("

总计字段上加格式:如千分位 比较笨拙的一种方法

//总计字段上加格式:如千分位1.MonWastageSumVO1为table名称2.Totalloss对应table总计字段名称3.bValues是赋给总计的值OATableBean table = (OATableBean)webBean.findIndexedChildRecursive("MonWastageSumVO1");OAWebBean abl = table.findIndexedChildRecursive("Totalloss");if (nu