사용자 도구

사이트 도구


java:hibernate:dirty_checking

문서의 이전 판입니다!


Hibernate Dirty Checking

  • Hibernate 는 Entity 조회시에 조회한 Entity 의 복제본을 저장하고 이후에 equals로 각 필드를 비교해서 dirty checking 을 한다.
  • 따라서 custom value object를 필드로 사용하는 경우 특히 JPA Converter 사용시에 equals/hashCode 를 올바로 구현하지 않으면 dirty checking 시 복제된 객체의 reference 주소와 entity 필드의 기존 reference 주소를 비교하면서 dirty 상태로 표시되고 이로 인해 update 가 발생할 수 있다.
  • @Embeddable의 경우에는 class 가 아닌 다시 그 각 필드에 대해 equals 를 수행한다. 따라서 @Embeddable 클래스의 각 필드를 구성하는 클래스에 equals/hashCode가 구현돼 있어야 한다.

참조

java/hibernate/dirty_checking.1668753136.txt.gz · 마지막으로 수정됨: 2022/11/18 15:32 저자 kwon37xi