티스토리 뷰

donaricano-btn
반응형

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
donaricano-btn
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함