java涓璽ransaction鍙傛暟鎬庝箞浣跨敤
鍦↗ava涓紝鍙互浣跨敤@Transactional
娉ㄨВ鏉ユ寚瀹氫簨鍔$殑灞炴€с€?code>@Transactional娉ㄨВ鍙互搴旂敤浜庣被绾у埆鎴栨柟娉曠骇鍒€?/p>
浠ヤ笅鏄娇鐢?code>@Transactional娉ㄨВ鏃跺彲浠ヨ缃殑涓€浜涘睘鎬э細
-
propagation
锛氭寚瀹氫簨鍔$殑浼犳挱琛屼负銆傞粯璁ゅ€兼槸Propagation.REQUIRED
锛岃〃绀哄鏋滃綋鍓嶆病鏈変簨鍔★紝鍒欏垱寤轰竴涓柊鐨勪簨鍔★紱濡傛灉宸茬粡瀛樺湪涓€涓簨鍔★紝鍒欏姞鍏ュ埌璇ヤ簨鍔′腑鎵ц銆傚叾浠栧彲閫夊€煎寘鎷?code>Propagation.REQUIRES_NEW銆?code>Propagation.SUPPORTS銆?code>Propagation.NOT_SUPPORTED绛夌瓑銆?/p> -
isolation
锛氭寚瀹氫簨鍔$殑闅旂绾у埆銆傞粯璁ゅ€兼槸Isolation.DEFAULT
锛岃〃绀轰娇鐢ㄦ暟鎹簱鐨勯粯璁ら殧绂荤骇鍒€傚叾浠栧彲閫夊€煎寘鎷?code>Isolation.READ_UNCOMMITTED銆?code>Isolation.READ_COMMITTED銆?code>Isolation.REPEATABLE_READ銆?code>Isolation.SERIALIZABLE绛夌瓑銆?/p> -
readOnly
锛氭寚瀹氫簨鍔℃槸鍚︿负鍙浜嬪姟銆傞粯璁ゅ€兼槸false
锛岃〃绀轰簨鍔″彲浠ヨ鍙栧拰淇敼鏁版嵁銆傚鏋滆缃负true
锛屽垯浜嬪姟鍙兘璇诲彇鏁版嵁锛屼笉鑳戒慨鏀规暟鎹€?/p> -
timeout
锛氭寚瀹氫簨鍔$殑瓒呮椂鏃堕棿锛屽崟浣嶄负绉掋€傚鏋滀簨鍔″湪鎸囧畾鐨勬椂闂村唴娌℃湁瀹屾垚锛屽皢浼氳嚜鍔ㄥ洖婊氫簨鍔°€?/p> -
rollbackFor
鍜?code>noRollbackFor锛氭寚瀹氶渶瑕佸洖婊氫簨鍔$殑寮傚父绫诲瀷鍜屼笉闇€瑕佸洖婊氫簨鍔$殑寮傚父绫诲瀷銆傚彲浠ユ寚瀹氬涓紓甯哥被鍨嬨€?/p>
浠ヤ笅鏄竴涓娇鐢?code>@Transactional娉ㄨВ鐨勭ず渚嬶細
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, readOnly = false, timeout = 10, rollbackFor = Exception.class)
public void doSomething() {
// 浜嬪姟鎿嶄綔浠g爜
}
鍦ㄤ笂闈㈢殑绀轰緥涓紝doSomething()
鏂规硶琚爣璁颁负涓€涓簨鍔★紝浜嬪姟鐨勫睘鎬ц缃负锛氫紶鎾涓轰负Propagation.REQUIRED
锛岄殧绂荤骇鍒负Isolation.READ_COMMITTED
锛屽彧璇讳负false
锛岃秴鏃舵椂闂翠负10绉掞紝鍥炴粴寮傚父绫诲瀷涓?code>Exception銆?/p>
相关问答