spring事務コメント

2176 ワード

Spring事務伝播行為のタイプ
事務伝播行為のタイプ
説明
PROPAAGATION_REQUIRED
今は事務がないなら、新しい事務を作ります.もう一つの事務があるなら、この事務に加入します.これは一番よくある選択です.
PROPAAGATION_SUPPORTS
現在の事務をサポートします.現在は事務がない場合は、非事務で行います.
PROPAAGATION_MANDATORY
現在の事務を使って、もし現在事務がないならば、異常を投げます.
PROPAAGATION_REQUIRES_NEW
新しい事務を作って、現在の事務があれば、当面の事務を保留します.
PROPAAGATION_NOT_SUPPORTED
非事務方式で操作を行い、現在事務があれば、当面の事務を保留する.
PROPAAGATION_NEVER
非事務的に実行し、現在事務がある場合は異常を投げます.
PROPAAGATION_NESTEP
現在トランザクションが存在する場合は、ネストトランザクション内で実行します.現在、事務がない場合は、PROPAAGATION_を実行します.REQUIREDと同様の動作.
spring     

        throw new RuntimeException("...");   
         throw new Exception("...");    
    //     @Transactional(rollbackFor=Exception.class) 
    public void methodName() { //     
       throw new Exception("...");
    } 
    //     @Transactional(noRollbackFor=Exception.class)    
    public ItimDaoImpl getItemDaoImpl() { //    
        throw new RuntimeException("  ");
    } 

    //      ,      ,        (      )
    @Transactional(propagation=Propagation.REQUIRED) 
    //             
    @Transactional(propagation=Propagation.NOT_SUPPORTED)    
    //         ,         ,     ,      ,        
    @Transactional(propagation=Propagation.REQUIRES_NEW) 
    //              ,      
    @Transactional(propagation=Propagation.MANDATORY)    
    //              ,      ( Propagation.MANDATORY  )
    @Transactional(propagation=Propagation.NEVER) 
    //     bean      ,   bean     ,     .    bean      ,      .
    @Transactional(propagation=Propagation.SUPPORTS) 
    
    /*
    public void methodName(){
       //         1
       update();
       //           
       otherBean.update();
       //         2
       update();
    }
    other                 
      update   ,other       
    */
    @Transactional(propagation=Propagation.NESTED) 
    // readOnly=true  ,   ,     ,   
    @Transactional (propagation = Propagation.REQUIRED,readOnly=true) 
    //       
    @Transactional (propagation = Propagation.REQUIRED,timeout=30)
    //          
    @Transactional (propagation = Propagation.REQUIRED,isolation=Isolation.DEFAULT)