사용자 도구

사이트 도구


java:jpa:validation

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:jpa:validation [2018/10/23 12:29]
kwon37xi
java:jpa:validation [2018/10/23 13:54] (현재)
kwon37xi [위반시 Exception 분석]
줄 4: 줄 4:
   * [[https://www.ibm.com/support/knowledgecenter/ko/SSAW57_9.0.0/com.ibm.websphere.nd.multiplatform.doc/ae/cdat_beanvaljpa.html|IBM Knowledge Center - JPA의 Bean 유효성 검증]]   * [[https://www.ibm.com/support/knowledgecenter/ko/SSAW57_9.0.0/com.ibm.websphere.nd.multiplatform.doc/ae/cdat_beanvaljpa.html|IBM Knowledge Center - JPA의 Bean 유효성 검증]]
   * [[https://beanvalidation.org/proposals/BVAL-234/|Bean Validation - Fix annoyance between JPA and Bean Validation when @Id @GeneratedValue and @NotNull are used]]   * [[https://beanvalidation.org/proposals/BVAL-234/|Bean Validation - Fix annoyance between JPA and Bean Validation when @Id @GeneratedValue and @NotNull are used]]
 +  * [[https://www.thoughts-on-java.org/automatically-validate-entities-with-hibernate-validator/|How to automatically validate entities with Hibernate Validator]]
  
 ====== 설정 ====== ====== 설정 ======
 +  * [[https://docs.jboss.org/hibernate/stable/annotations/reference/en/html/additionalmodules.html#d0e3875|Chapter 4. Additional modules # Bean Validation]]
   * ''javax.persistence.validation.mode'' : [[https://docs.oracle.com/javaee/6/api/javax/persistence/ValidationMode.html|ValidationMode]]''CALLBACK''이나 ''NONE'' 중 에 하나로 항상 명시할 것.   * ''javax.persistence.validation.mode'' : [[https://docs.oracle.com/javaee/6/api/javax/persistence/ValidationMode.html|ValidationMode]]''CALLBACK''이나 ''NONE'' 중 에 하나로 항상 명시할 것.
 +    * ''AUTO''가 Default 이며, [[java:validation|Java Validation]] 구현체가 존재하면 자동 활성화 된다.
 +
 +====== 위반시 Exception 분석 ======
 +  * validation 실패시에 ''RollbackException''에 실제 위반 사항이 들어가 있다.
 +
 +<code java>
 +try {
 +    em.getTransaction().commit();
 +    Assert.fail(“ConstraintViolationException exptected”);
 +} catch (RollbackException e) {
 +    // getCause()가 실제로 ValidationConstraintException 인지 여부를 확인해야한다. 안그러면 Cast exception이 발생할 수 있다.    
 +    Set<ConstraintViolation<?>> violations = ((ConstraintViolationException)e.getCause()).getConstraintViolations();
 +    for (ConstraintViolation v : violations) {
 +        log.info(v);
 +    }
 +}
 +</code>
  
java/jpa/validation.1540265349.txt.gz · 마지막으로 수정됨: 2018/10/23 12:29 저자 kwon37xi