사용자 도구

사이트 도구


java:jpa:converter

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:jpa:converter [2022/11/11 12:50]
kwon37xi
java:jpa:converter [2022/11/18 15:05] (현재)
kwon37xi [변환 클래스에 equals & hashCode 구현 필수]
줄 27: 줄 27:
 } }
 </code> </code>
 +
 +===== 변환 클래스에 equals & hashCode 구현 필수 =====
 +
   * ''AttributeConverter''의 컨버팅 대상이 되는 클래스에 **''equals'', ''hashCode'' 메소드를 명확히 구현할 것.**   * ''AttributeConverter''의 컨버팅 대상이 되는 클래스에 **''equals'', ''hashCode'' 메소드를 명확히 구현할 것.**
-    * [[java:hibernate|Hibernate]]의 경우, ''AttributeConverter''가 변환하는 클래스에 대해 이유는 명확히 모르겠으나 처음 생성시 한번 값을 할당하고, 나중에 재할당을하는 현을 보임+  * [[java:hibernate|Hibernate]]의 경우, Dirty Checking 시에 최초 생성된 객체를 복사해서 따로 저장하고 이후에 복사본과 마지막 태를 ''equals'' 로 비교한다. 따라서 ''equals/hashCode''가 복사시마다 달라지는 경우에 문제 소지가 있다
-    * 이때 첫 값과 두번째 값의 ''equals''를 보고서 dirty checking 을 하는데, ''equals''가 제대로 구현 안돼 있으면 ''false''가 나오고 그로인해 entity 전체에 대한 update 가 발생한다. +  * 이때 첫 값과 두번째 값의 ''equals''를 보고서 dirty checking 을 하는데, ''equals''가 제대로 구현 안돼 있으면 ''false''가 나오고 그로인해 entity 전체에 대한 update 가 발생한다. 
-    * 따라서 Java 기본형들이 아닌 custom class 로 convert 할 경우에는 필히 ''equals''/''hashCode''를 구현해야 한다. 그렇지 않으면 모르는 사이에 지속적으로 update가 발생하게 된다. +  * 따라서 Java 기본형들이 아닌 custom class 로 convert 할 경우에는 필히 ''equals''/''hashCode''를 구현해야 한다. 그렇지 않으면 모르는 사이에 지속적으로 update가 발생하게 된다. 
-    * [[https://stackoverflow.com/questions/47285684/hibernate-springdata-incorrect-dirty-check-on-field-with-attributeconverter|java - Hibernate/SpringData : Incorrect dirty check on field with AttributeConverter - Stack Overflow]] +  * [[https://stackoverflow.com/questions/47285684/hibernate-springdata-incorrect-dirty-check-on-field-with-attributeconverter|java - Hibernate/SpringData : Incorrect dirty check on field with AttributeConverter - Stack Overflow]] 
-    * [[https://medium.com/@paul.klingelhuber/hibernate-dirty-checking-with-converted-attributes-1b6d1cd27f68|Hibernate Dirty-Checking with Converted Attributes | by Paul Klingelhuber | Medium]]+  * [[https://medium.com/@paul.klingelhuber/hibernate-dirty-checking-with-converted-attributes-1b6d1cd27f68|Hibernate Dirty-Checking with Converted Attributes | by Paul Klingelhuber | Medium]]
  
  
java/jpa/converter.1668138621.txt.gz · 마지막으로 수정됨: 2022/11/11 12:50 저자 kwon37xi