阅读更多

3顶
0踩

编程语言

  Ebean可以提高您POJOs对新增事务的支持,可以在方法和类上使用@Transaction注释。之后Ebean将添加事务的逻辑(事务的开始,提交,回滚,暂停以及恢复事务等)。

使用@Transactional的例子:

// any old pojo  
 public class MyService {  
   
     @Transactional  
     public void runFirst() throws IOException {  
   
         // run in a Transaction (REQUIRED is the default)  
   
         // find a customer  
         Customer customer = Ebean.find(Customer.class, 1);  
   
         // call another "transactional" method  
         runInTrans();  
     }  
   
     @Transactional(type=TxType.REQUIRES_NEW)  
     public void runInTrans() throws IOException {  
   
         // run in its own NEW transaction   
         // ... suspend an existing transaction if required  
         // ... and resume it when this method ends  
   
         // find new orders  
         List<Order> orders = Ebean.find(Order.class)  
                                     .where().eq("status",OrderStatus.NEW)  
                                     .findList();  
         ...  


TxRunnable和TxCallable相当于@Transactional的方案,如果你喜欢还可以将 TxRunnable和TxCallable与@Transactional组合使用。

使用TxRunnable和TxCallable的例子:
 
 public void myMethod() {  
      ...  
      System.out.println(" Some code in myMethod...");  
      
      // run in Transactional scope...   
      Ebean.execute(new TxRunnable() {  
        public void run() {  
             
            // code running in "REQUIRED" transactional scope  
           // ... as "REQUIRED" is the default TxType  
           System.out.println(Ebean.currentTransaction());  
             
           // find stuff...  
           User user = Ebean.find(User.class, 1);  
           ...  
             
           // save and delete stuff...  
           Ebean.save(user);  
           Ebean.delete(order);  
           ...  
       }  
    });  
    
    System.out.println(" more code in myMethod...");  
  }  


你可以查看更多 @Transactional TxRunnable & TxCallable 的详情。
来自: theserverside
3
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 关于synchronized的面试题

    最近公司要招贤纳士,在面试的过程中,我发现所有人都知道关键字synchronized是用来线程同步,保证线程安全的。但是再深入聊下去,很容易陷入尴尬之境。我也只能客气地说“换个话题“,或者“今天就先聊到这里“…...

  • Synchronized底层核心原理

    本篇文章是关于并发编程中Synchronized锁的底层核心原理知识记录,由于篇幅原因,下篇文章将介绍各种锁的优化原理。

  • Synchronized底层实现原理

    如果对上面的执行结果还有疑问,也先不用急,我们先来了解Synchronized的原理,再回头上面的问题就一目了然了。我们先通过反编译下面的代码来看看Synchronized是如何实现对代码块进行同步的: public class ...

  • 关于synchronized具备原子性的问题

    1 关于synchronized具备原子性的问题1 原子性的定义: 原子操作(atomic operation)是不需要synchronized,这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就...

  • 并发Synchronized原理

    最近在看一些java并发方面的知识,并发编程是Java程序员最重要的技能之一,也是最难掌握...一、Synchronized的基本使用 二、Synchronized 原理 三、运行结果解释 四 总结 Mark Word(对象头) Monitor Synchr...

  • 聊一聊synchronized

    此次我们先从最基础的Synchronized聊起,一起看看Synchronized作用在方法上,在不同类型的变量上都有哪些效果。本文重在将能想到的情况逐一列举,尽可能全的描述Synchronized不同场景下的不同作用,所以案例避免不了...

  • Synchronized锁的使用

    本篇文章是关于并发编程中Synchronized锁的用法知识记录,由于篇幅原因,核心原理知识下篇记录

  • 并发编程3-synchronized

    带着疑问去学习, Synchronized可以作用在哪里? 分别通过对象锁和类锁进行举例。 Synchronized本质上是通过什么保证线程安全的? 分三个方面回答:加锁和释放锁的原理,可重入原理(当线程拥有Monitor权限时,重新...

  • Java多线程之synchronized

    synchronized具有同步功能,是一种互斥锁,锁的是对象。如果既想保证共享变量的可见性和有序性,又想保证原子性,那么synchronized关键字是一个不错的选择。synchronized的缺点:1.synchronized底层是由jvm实现,...

  • Lock和synchronized的区别和使用

    今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的...

  • 线程安全——Synchronized

    synchronized的几种用法修饰普通方法,相当于锁实例对象对代码块进行加锁,相当于锁当前调用方法的对象(也是实例对象)对静态方法进行加锁,相当于锁类对象。

  • synchronized学习

    1. synchronized的三种使用方式 之前,学习集合类时,经常提到某些集合是线程同步的,或者说线程安全的 因为,它们的方法使用synchronized进行修饰,以保证实例对象是线程安全的 1.1 普通同步方法 普通同步方法...

  • Synchronized底层原理

    一、Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。 Synchronized的作用主要有三个: 确保线程互斥的访问同步代码 保证共享变量的修改能够及时...

  • Synchronized Integer问题

    其实关于锁对象为什么发生了变化,还隔了一点点东西没有说出来。 它就藏在字节码里面。 我们通过 javap 命令,反查字节码,可以看到这样的信息: Integer.valueOf 这是什么玩意? 让人熟悉的 Integer 从 -128 到 ...

  • synchronized关键字

    本节主要作为一个笔记,用来记录synchronized关键字。 首先看一个例子: public class Mythread extends Thread { private int count = 5; public void run(){ count--; System.out.println(this.current...

  • 并发编程的艺术(2):Synchronized的使用场景

    Synchronized

  • java synchronized 接口_Java并发之synchronized关键字和Lock接口

    欢迎点赞阅读,一同学习交流,有疑问请留言 。GitHub上也有开源 JavaHouse,欢迎star引用当开发过程中,我们遇到并发问题。怎么解决?一种解决方式,简单粗暴:上锁。将千军万马都给拦下来,只允许一个人过独木桥。...

  • 深入理解Synchronized底层实现

    Synchronized在并发编程经常使用到,那么它到底是什么?实现原理又是什么?今天就来深入理解一下吧! 首先,synchronized关键字主要有以下用法: 同步代码块 : synchronized(this) 、 synchronized(类对象实例) 锁...

  • 【线程 锁】synchronized所有用法汇总(包含this语法)

    synchronized作用于实例方法2.1 多个线程访问同一个对象的同一个synchronized方法2.2 多个线程访问同一个对象的不同的synchronized方法2.3 一个线程获取了该对象的锁之后,其他线程来访问其他非synchronized实例...

  • qtz40塔式起重机总体及塔身有限元分析法设计().zip

    qtz40塔式起重机总体及塔身有限元分析法设计().zip

Global site tag (gtag.js) - Google Analytics