728x90
코틀린에서는 기본적으로 모든 클래스와 프로퍼티가 final입니다.
이로 인해 JPA를 사용할 때 지연로딩을 사용하기 위해서는 모든 클래스와 프로퍼티에 open을 붙여주어야 하는데 이는 꽤나 귀찮습니다.
이를 해결하기 위해 all-open 플러그인을 사용할 수 있습니다.
스프링을 사용한다면 기본적으로 plugin.spring을 통해 몇몇 어노테이션들에 all-open이 적용됩니다.
그러나 @Entity에는 기본적으로 all-open이 적용되지 않으므로 따로 설정을 해주어야 합니다.
다음과 같이 allOpen을 build.gradle 파일에 추가합니다.
plugins {
kotlin("plugin.jpa") version "1.6.21"
}
allOpen {
annotation("javax.persistence.Entity")
}
Reference
https://techblog.woowahan.com/2675/
코틀린에서 하이버네이트를 사용할 수 있을까? | 우아한형제들 기술블로그
{{item.name}} 신규 시스템을 개발하면서 코틀린과 하이버네이트를 함께 사용한 경험을 나누기 위해 작성해봅니다. 안녕하세요! 서비스플랫폼 팀에서 서버 개발을 하는 김지희, 김석홍입니다. 저희
techblog.woowahan.com
728x90
'코틀린 > JPA' 카테고리의 다른 글
[코틀린][JPA] - 코틀린에서 JPA를 사용할 때 Optional 대신 nullable타입 사용하기 (0) | 2022.07.28 |
---|---|
[JPA] 코틀린에서 @OneToMany 사용시 발생하는 오류 (0) | 2022.07.23 |