테이블 A와 테이블 B가 OneToMany 관계일 때, 다음과 같이 정의돼있었다.
class A {
@OneToMany
var bs: List<B>? = null
}
A.bs is declared with a raw type and has an explicit 'targetEntity'
다음 오류는 Kotlin에서 List가 수정 불가하기 때문에 발생한다.
List를 MutableList로 변경해준다.
could not prepare statement [Column "{테이블이름}_{부모pk칼럼이름}" not found;
class Parent {
@Id
var parentId: Int = 1
@OneToMany(mappedBy = "parent")
var children: MutableList<Child> = mutableListOf()
}
class Child {
@Id
var childId: Int = 1
@ManyToOne
var parent: Parent = Parent()
}
JPA에서 조인할 때 쓰는 칼럼명이 기본적으로 {테이블이름}_{부모pk칼럼이름} 이라서 그렇다.
자식 쪽의 부모 멤버변수에 @JoinColumn("parent_id") 와 같이 부모의 pk 칼럼명을 명시해야 한다.
class SomeDTO (
@NotBlank
var foo: String = "",
var bar: String = ""
) {
}
이렇게 할 경우 Java는 @NotBlank 어노테이션을 생성자에 달게 된다.
@field:NotBlank 라고 달아줘야 필드에 달게 된다.