You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
엔티티는 식별자(@id)를 가지를 객체로써 equals(), hashcode()를 재정의해줘야 동일성과 동등성이 보장될 수 있다.
재정의시 @Id 필드는 필수로 넣어주면 좋다.
toString() 재정의
연관관계 필드들은 제외하고 정의해야 한다.
양방향 관계라면 특히 조심해야 한다.
kotlin 기준 엔티티 작성 주의사항
all open 플러그인 잘쓰기
// allopen 확장, @Component 등 특정 스프링 어노테이션에 대해 allopen 플러그인을 적용.
kotlin("plugin.spring") version kotlinVersion
// noarg 확장, @Entity, @Embeddable, @MappedSuperclass 어노테이션에 대해 noarg 플러그인 적용.
kotlin("plugin.jpa") version kotlinVersion
코틀린을 사용하여 JPA, 스프링을 개발할 때 기본적으로 위와 같은 두 플러그인을 설정하게 된다.
JPA의 지연 로딩을 제대로 사용하려면 all open 플러그인의 커스텀이 필요하다.
지연 로딩은 프록시 객체를 만들 수 있어야 하는데, 그러려면 엔티티 클래스에 open 키워드를 클래스와 필드에 추가해줘야한다.
엔티티 작성시 주의사항
equals(), hashcode() 재정의
equals()
,hashcode()
를 재정의해줘야 동일성과 동등성이 보장될 수 있다.@Id
필드는 필수로 넣어주면 좋다.toString() 재정의
kotlin 기준 엔티티 작성 주의사항
all open 플러그인 잘쓰기
open
키워드를 클래스와 필드에 추가해줘야한다.출처
The text was updated successfully, but these errors were encountered: