Kotlin + SpringBoot + JPA
2018, Jul 06
Spring Boot+코틀린으로 간단한 API를 만들고 있던 중에 막혔던 부분을 소개하고자 한다.
(깃헙 참고 - https://github.com/lovia98/kotiln-restapi)
- JPA적용시 Entity 설정
JPA에서 코틀린 Entity에 접근하기 위해서는 기본 생성자가 필요하다.
여기서 기본 생성자란 인자가 없는 생성자를 말한다.@Entity data class Article (@Id @GeneratedValue(strategy = GenerationType.IDENTITY) var articleId: Int, var title: String, var author: String, var content: String, var category: Category) { //JPA 적용을 위해선 default생성자 추가가 필요하다. contructor() : this(.....) }
이렇게 인자가 없는 contructor를 추가 할 경우 코틀린에서는 주 생성자를 호출 해줘야 하기 때문에
this(..)
호출이 필요하고 모든 프로퍼티를 언급해주는 일은 정말 귀찮은 일이다.
이 또한 코틀린에서는 지원해주는 플러그인이 있다. No-arg compiler plugin
을 적용하자.
(Ref.https://kotlinlang.org/docs/reference/compiler-plugins.html#no-arg-compiler-plugin)
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
}
}
apply plugin: "kotlin-noarg"
플러그인 추가후에는 인자 없는(no-argument)생성자를 일일히 추가해주지 않아도 된다.