ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • jpa 엔티티 클래스에 @EqualsAndHashCode 을 사용하는 경우
    framework/Spring 2023. 3. 16. 10:41
    반응형

    jpa 엔티티 클래스에 @EqualsAndHashCode 연산을 사용하는 경우. IDEA에서 경고 메시지를 표시합니다.

     

    Using @EqualsAndHashCode for JPA entities is not recommended. It can cause severe performance and memory consumption issues.
    JPA 엔티티에 @EqualsAndHashCode를 사용하는 것은 권장되지 않습니다. 심각한 성능 및 메모리 소비 문제를 일으킬 수 있습니다.


    JPA 엔티티에 @EqualsAndHashCode 주석을 사용할 수 있지만 IntelliJ IDEA는 성능 및 메모리 소비 문제를 일으킬 수 있으므로 사용하지 않는 것이 좋다는 경고 메시지를 표시합니다.

    이 경고가 표시되는 이유는 @EqualsAndHashCode 어노테이션이 기본적으로 클래스의 모든 필드를 기반으로 equals() 및 hashCode() 메서드를 생성하기 때문입니다. JPA 엔티티의 경우 JPA가 동일성 확인 및 신원 추적에 사용되는 특정 필드 집합에 의존하기 때문에 문제가 발생할 수 있습니다.

    특정 필드를 제외하도록 적절하게 구성하지 않고 JPA 엔터티 클래스에서 @EqualsAndHashCode를 사용하면 엔터티의 인스턴스를 유지, 업데이트 또는 삭제하려고 할 때 예기치 않은 동작이 발생할 수 있습니다. 또한 대규모 데이터 세트를 쿼리할 때 해시코드() 메서드가 계산 비용이 많이 들 수 있으므로 성능 문제가 발생할 수 있습니다.

    이러한 문제를 방지하려면 일반적으로 JPA 엔티티 클래스에서 @EqualsAndHashCode를 사용하지 않거나 JPA가 동일성 확인 및 신원 추적에 사용하는 필드를 제외하도록 구성하는 것이 좋습니다. @EqualsAndHashCode.Include 어노테이션을 사용하여 생성된 메서드에 포함할 필드를 지정하고 onlyExplicitlyIncluded 매개 변수를 사용하여 해당 필드만 비교에 사용되도록 할 수 있습니다.

     

    반응형

    'framework > Spring' 카테고리의 다른 글

    [Gradle, JAVA, SPRING] 웹개발에 필요한 최소한의 Gradle  (2) 2020.07.18
    Spring + Vault  (0) 2020.05.06
    REST / RESTful API  (0) 2020.01.15
    SPRING SECURITY + JWT 회원가입, 로그인 기능 구현  (16) 2020.01.10
    Thymeleaf 주석  (0) 2019.05.28
Designed by Tistory.