대부분의 코 틀린 JPA 예제 코드는이JPA/Hibernate가있는 Kotlin :`open`없이 lazy-loading이 없습니까?
class Person(val name: String, val age: Int) { /* ... */ }
또는 지금
data class Person(val name: String="", val age: Int=0) { /* ... */ }
도
의 Hibernate User Guide처럼 보이는, 그리고 나는 그들이 일반적으로 확장, 그렇지 않으면 프록시를 만들거나하려는 다른 여러으로 ORMs, 상태 생각 모델 클래스이지만 Kotlin에서 클래스를 명시 적으로 정의해야만합니다.open
. 현재 데이터 클래스에서는 이것이 불가능하며 내 경험에 비추어 볼 때 Kotlin에 JPA 엔티티를 작성할 때 대부분의 사람들이 생각하지 않는다고 가정합니다.
그래서, 그것은
open class Person(val name: String, val age: Int) { /* ... */ }
을 할 충분하다, (이 유래 모든 후) 내 질문에 와서 또는 우리가 실제로
open class Person(open val name: String, open val age: Int) { /* ... */ }
가 불필요하게 방해하지 않도록해야 할 것입니다 ORM은 제대로 일하고 있습니까?
정말 위험한 경우 IntelliJ IDEA에 경고를 추가해야합니다. 즉, 클래스에 @Entity
주석이있는 경우 open
으로 정의해야합니다.
"harmful"이라는 단어가 여기에 어떻게 적용되는지 모르겠습니다. 그 사용법을 분명히하거나 중요하지 않은 경우 질문에서 삭제할 수 있습니까? – voddan
적어도 Hibernate는 최종 클래스이거나 최종 접근 자 메소드를 가지고 있고 JPA에 대한 데이터 클래스를 사용하는 것이 종종 좋은 일처럼 생겼지 만 실제로 성능을 해칠 수는 없다는 사실은 정의에 의해 최종적이기 때문에 (적어도 그 순간은 변할 수 있다고 들었음). 제목은 매우 보편적으로 알려져 있고 예방해야한다고 생각했기 때문에 클릭 버디입니다. Kotlin에 포팅 된 애플리케이션이 Java 대응 제품보다 성능이 떨어지고 Kotlin을 비난하는 사용자 :/ – johnp
질문을 바꾸어 주셔서 감사합니다! – voddan