[英]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.