org.hibernate.AssertionFailure: null id in xxx entry (don't flush the Session after an exception ...

    @transactional
    public void task() {
        //步驟(1)插入操作
        try {
            save();
        }catch (Exception e){
            log();
        }
        //步驟(2)查詢(xún)操作
        select();
    }

上述代碼是我遇到的出現(xiàn)如題所示的拋錯(cuò)場(chǎng)景。
前提:在同個(gè)事務(wù)中,
1,步驟(1)插入操作拋錯(cuò)了,但由于某些需要,加了try catch,錯(cuò)誤沒(méi)有往外拋;
2,這時(shí)執(zhí)行了步驟(2)的查詢(xún)操作(這里的查詢(xún)跟步驟(1)save的實(shí)體無(wú)關(guān));
3,查詢(xún)觸發(fā)了autoFlush,先前保存失敗的記錄會(huì)再次保存,導(dǎo)致拋如題所述異常。
只要排查出步驟(1)中拋錯(cuò)的原因(字段長(zhǎng)度超出了數(shù)據(jù)庫(kù)設(shè)置的長(zhǎng)度、非空字段但是空了、唯一索引沖突了......一切皆有可能)并解決,也就解決了如題所示的異常。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,304評(píng)論 2 89
  • 婚姻不好是伴侶的錯(cuò),因?yàn)槟銓?duì)我這樣,所以我才是這樣。事業(yè)不成功,是因?yàn)閯e人對(duì)自己不夠支持。顧客不買(mǎi)東西,是因?yàn)樗麄?..
    心的新旅行閱讀 252評(píng)論 0 0
  • emm
    李伊然閱讀 193評(píng)論 0 0
  • 關(guān)于投資意向 本周“股債商”三殺,盡管證監(jiān)會(huì)多次申明,嚴(yán)加監(jiān)管是為了規(guī)范化市場(chǎng)、塑造健康的股市環(huán)境。不過(guò)投資者負(fù)面...
    小貍投資閱讀 195評(píng)論 0 0

友情鏈接更多精彩內(nèi)容