본문 바로가기

@EqualsAndHashCode2

JPA Buddy 플러그인을 이용해서 엔티티에 equals와 hashcode를 명시적으로 구현해야 하는 이유 개발하다 보면 엔티티에 equals, hashcode를 구현하기 위해 Lombok 라이브러리를 활용해 @EqualsAndHashCode를 사용하는 경우가 있다. 하지만 이전 포스팅에서 다뤘던 것처럼 Lazy 연관관계를 갖는 엔티티에서  @EqualsAndHashCode를 사용하면 실제 동등성 비교와 테스트 코드에서 문제가 발생할 수 있다. https://shiba-holic.tistory.com/64 JPA에서 Lombok 사용시 주의할 점🤣 배경 프로젝트를 마치고 나면 항상 코드 인스펙션 과정을 통해 프로그램에 대한 취약점이나 장애가 있는지 확인을 하게 되는데, 간혹 equals와 hashcode가 구현되지 않은 엔티티에 대해 경고로shiba-holic.tistory.com이런 경우, 기본 Lombo.. 2024. 6. 22.
JPA에서 Lombok 사용시 주의할 점 🤣 배경 프로젝트를 마치고 나면 항상 코드 인스펙션 과정을 통해 프로그램에 대한 취약점이나 장애가 있는지 확인을 하게 되는데, 간혹 equals와 hashcode가 구현되지 않은 엔티티에 대해 경고로 지적을 당하게 되는 경우가 종종 있다. 처음에는 Lombok에서 제공하는 @EqualsAndHashCode를 써서 간편하게 해결하려고 했다. 그런데 나중에 프로그램 사용 중에 문제가 발생하면서 Lombok 사용이 문제라는 것을 알게 되었고, 다른 문제는 없을지 JPA에 Lombok을 사용할 때 주의할 점에 대해 알아보게 되었다. 문제점 1. HashMap, HashSet 사용에 문제가 발생한다. - Shiba 엔티티 @Entity @Table(name = "tb_shiba_holic") @EqualsAndH.. 2023. 12. 30.