簡體   English   中英

Spring EntityManager Hibernate異常處理

[英]Spring EntityManager Hibernate Exception Handling

在Spring,JPA,Hibernate項目中,我試圖讓異常處理工作。 對於以下代碼:

    @Repository("mscoutService")
    public class MScoutServiceImpl implements MScoutService, Serializable {

        @PersistenceContext
        private EntityManager em;

...
        @Override
        @Transactional
        public void deleteMission(Long missionId) {
            try {
                Mission mis = em.find(Mission.class, missionId);
                em.remove(mis);
            } catch (Exception e) {
                handle_exception();
            }
        }

我正在嘗試捕獲底層的hibernate / jdbc / db異常(例如,當依賴實體仍然存在時,remove將因org.springframework.orm.hibernate3.HibernateJdbcException而失敗)並執行一些操作。 但是永遠不會到達catch代碼(在調試器中檢查)。

我想這與Spring管理它的方式有關,但我不知道如何在em.remove()期間捕獲異常...

任何幫助表示贊賞!

這是因為刷新會話時發生異常。 並且可能在事務提交時刷新 - 即通過spring代理。 如果要手動刷新,可以使用entityManager.flush()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM