2014-09-09 5 views
0

java에서 ConstraintViolationException이 발생한 필드를 식별하려고합니다. 나는 두 개의 고유 한 필드, 사용자 이름 및 전자 메일을 가지고 있고 예외를 잡을 때 올바른 열거 형 필드를 반환하려고합니다.예외가 발생한 필드를 식별하는 방법

USER_ALREADY_REGISTERED("User Already Registered"), 
EMAIL_ALREADY_REGISTERED("Email Address Already In Use"), 

올바른 방법은 무엇입니까?

내가 생각할 수있는 한 가지 접근법은 예외에서 메시지를 가져 와서 필드 이름이 포함되어 있는지 확인한 다음 한 열거 형을 사용하면 다른 열거 형을 반환하는 것을 볼 수 있습니다. 그러나 이것은 약간의 불량품으로 보입니다. 방법?

감사 편집

:

}catch(ConstraintViolationException e){ 
     if(e.getConstraintName() != null){ 
      if(e.getConstraintName().toLowerCase().contains("email")){ 
       return RegistrationStatus.EMAIL_ALREADY_REGISTERED; 
      } 
     } 
     return RegistrationStatus.USER_ALREADY_REGISTERED; 

답변

0

사용 속성 검사 할 수있는 방법 getConstraintViolations()은 제약 조건 위반 예외가 시작되었다.

+0

최대 절전 모드에서 ConstraintVioilationException과 같은 비슷한 작업을 수행 할 수 있도록 최대 절전 모드를 사용하고 있습니다 (내 잠재적 인 해결책은 op 참조). – Biscuit128

관련 문제