1
Spring, JPA, Hibernate 프로젝트에서 나는 예외 처리 작업을 시도하고있다.Spring EntityManager 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();
}
}
내가 (종속 실체는 여전히 org.springframework.orm.hibernate3.HibernateJdbcException 실패합니다 제거를 제시 할 때, 예를 들어) 기본 최대 절전/JDBC/DB 예외를 잡으려고 노력하고있어 다음 코드 몇 가지 작업을 수행하십시오. 그러나 catch 코드에 도달하지 않습니다 (디버거에서 확인).
나는이 봄이를 관리하는 방식과 관련이있다 생각,하지만 난
어떤 도움에 감사드립니다 ... 내가 em.remove() 동안 예외를 잡을 수 있습니다 얼마나 몰라!
감사합니다. em.flush()를 추가하면 예외 핸들러가 catch되므로이 문제가 해결되었습니다. – Tom
이 스레드는 약간 오래된 것이지만 더 나은 방법은 @Transactional을 사용중인 저장소 위의 예외 계층을 처리하는 것입니다. 아니면 예외를 처리하는 가장 좋은 방법입니까? – oberger
예, 일반적으로 저장소 외부에서하는 것이 좋습니다. – Bozho