[Kotlin + Spring] 1. Jpa Entity Issue
24 May 2022
kotlin
kotlin
spring
jpa
상속 문제
- Hibernate 의 지연로딩을 위해 Entity 를 상속하여 프록시를 만든다.
- Kotlin 에서 Java 관련 프레임워크를 사용하게 된다면 문제가 되는 부분 중 하나가
상속
이다.
- kotlin 은 기본이 final class
- open 을 붙여서 해결해줘야한다.
- 매번 작업하다보면 놓칠 수 있으므로, all-open-plugin 를 이용
해결 방법
plugins {
id "org.jetbrains.kotlin.plugin.allopen" version "1.6.21"
}
allOpen {
annotation("com.my.Annotation")
}
Reflection API
- Hibernate 에서 Reflection 을 이용하므로
기본 생성자
를 필요로 함.
- https://kotlinlang.org/docs/no-arg-plugin.html#gradle
해결방법
plugins {
id "org.jetbrains.kotlin.plugin.noarg" version "1.6.21"
}
noArg {
annotation("com.my.Annotation")
}
Data class
- data class 를 사용하여 entity 를 사용하게 된다면?
- Entity 를 불변으로 사용은 가능하겠지만, dirty check 등의 어려움이 있음.
- Spring guide 에서도 권장하지 않음…
- https://spring.io/guides/tutorials/spring-boot-kotlin/
- 그냥 class 를 사용하는게 좋겠다.
Related Posts