這個錯誤翻譯過來是:當(dāng)前事務(wù)已中止。在事務(wù)塊結(jié)束之前,要求被忽略
意思就是在pgsql中,同一事務(wù)中如果某次數(shù)據(jù)庫操作出錯了,那么當(dāng)前事務(wù)中這個操作以后的所有命令都將出錯。
進(jìn)行修改的話就是 可以增加檢測機(jī)制,當(dāng)我們檢測事務(wù)中有sql失敗時,可以通過回滾/重新開啟事務(wù),提交/重新開啟事務(wù)來解決。
或者,我們也可以直接設(shè)置事務(wù)自動提交。
使用@Transactional注解解決的話可以直接在注解中修改文章來源:http://www.zghlxwxcb.cn/news/detail-766915.html
@Transactional(rollbackFor = Exception.class)
@Transactional注解的rollbackFor屬性指定了回滾的異常類型,這里可以設(shè)置為Exception.class,表示任何異常都會回滾事務(wù)。如果業(yè)務(wù)邏輯執(zhí)行過程中需要回滾事務(wù),就拋出一個RuntimeException,這會觸發(fā)事務(wù)的回滾。注意,這里不能使用try-catch語句,而是需要通過拋出異常的方式來觸發(fā)事務(wù)回滾。文章來源地址http://www.zghlxwxcb.cn/news/detail-766915.html
@Transactional(rollbackFor = Exception.class)
public class DoSomethingService {
public void doSomething() {
// 執(zhí)行業(yè)務(wù)邏輯
// 如果需要回滾事務(wù),拋出一個RuntimeException
if (doSomething) {
throw new RuntimeException("需要回滾事務(wù)");
}
}
}
到了這里,關(guān)于pgsql報錯current transaction is aborted.commands ignored until end of transaction block的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!