목록 보기
스포카에서 Kotlin으로 JPA Entity를 정의하는 방법
백엔드

스포카에서 Kotlin으로 JPA Entity를 정의하는 방법

spoqa
spoqa
2022년 8월 16일

두줄요약

Kotlin에서 JPA Entity를 정의할 때 자주 보이는 안티 패턴을 정리했습니다. mutable property, data class, lateinit 사용 시 주의할 점을 설명했습니다.

핵심 내용

  • Kotlin + JPA에서 Entity를 더 객체답고 Kotlin답게 정의하려는 문제의식
  • mutable property, data class, lateinit 사용 시 나타나는 안티 패턴과 주의점 정리
  • Entity의 동일성은 식별자 기준이며, 연관관계는 초기화 시점과 접근 방식에 특히 주의 필요

주의할 점

  • 식별자와 상태를 외부에 무분별하게 노출하는 mutable property 지양
  • data class의 equals, copy가 Entity 특성과 충돌할 수 있으므로 신중한 사용 필요
  • 연관관계에 lateinit을 쓰면 조회는 되더라도 생성 직후 접근 시 런타임 오류 가능

다음 읽기

#JPA 주제를 이어서 읽기

기능 테스트 전환 이야기

기능 테스트로 전환한 배경과 통합 테스트의 한계를 설명한 글입니다. Hibernate와 Spring 이벤트 처리로 인한 실제 버그 사례를 통해 전환 이유를 정리했습니다.

spoqa
spoqa
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...