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