티스토리 뷰
728x90
반응형
@Entity
data class Member(
@Id
@GeneratedValue
val id: Long = 0,
var name: String
)
- equals()와 hashCode() 문제: data class는 생성자에 있는 모든 필드를 사용하여 equals와 hashCode를 자동으로 만듦
- id = null (or 0) 인 상태로 엔티티 생성
- HashSet 또는 HashMap key로 사용
- persist() → DB가 id 생성
- Hibernate가 id를 새 값으로 변경
- hashCode() 변경 → 컬렉션에서 못 찾음
- equals / hashCode는 변하지 않는 식별자를 사용해야 한다
- 순환 참조 및 지연 로딩 실패: 만약 생성자에 연관 관계(@OneToMany 등)가 포함되면,
hashCode 호출 시 연관된 엔티티를 모두 로딩(Fetch)하게 되어 성능 문제나 무한 루프가 발생 - data class 는 open 이 되지 않기 때문에 상속이 불가하고, 프록시 객체를 생성할 수 없음
- Lazy Loading 불가
728x90
반응형
'Java' 카테고리의 다른 글
| [Kotlin] JPA에서 올바른 equals / hashCode 규칙, kassava 사용 시 문제 (0) | 2026.01.11 |
|---|---|
| [Kotlin] JPA Entity @Id 필드 선언 방식 (0) | 2026.01.11 |
| [Kotlin] nested class vs. inner class (0) | 2026.01.11 |
| [Java] openjdk:11-jdk-slim 이미지 사용 시 POI 엑셀 기능 불가 (0) | 2026.01.10 |
| [Java] Jackson @JsonAnySetter, @JsonAnyGetter (2) | 2025.07.08 |
반응형
300x250