본문 바로가기

Spring JPA2

Caused by: org.hibernate.AnnotationException: Entity 'myJpaClass' has no identifier (every '@Entity' class must declare or inherit at least one '@Id' or '@EmbeddedId' property) 다음 JPA 에러는 초보적인 에러지만 멘탈이 회복되지 않았을때 보게되면 이슈 트래이싱이 안되니 이력 차원에서 정리합니다. :)▣ 에러 현상 :@Entity class 에 ID 혹은 EMBEDDEDID가 없다고 발생하는 현상▣ 에러 원인 :@Id 혹은 @EmbeddedId 의 miss importSpring에서 제공하는 @Entity 와 @Id는 실제 JPA 구현을 위한 것이 아닙니다.Spring의 @Entity는 org.springframework.stereotype.Component의 형태로서, 주로 컴포넌트 스캔에 사용.결론적으로 Spring @Id나 @EmbeddedId 는 JPA와 직접적인 관련이 없습니다.   ▣ 해결 방법 :JPA( Jakarta Persistence API ) 어노테이션을 사.. 2024. 8. 25.
JPA - @OneToMany 단방향 쓰지 않는 이유 JPA에서 OneToMany는 보통 추천하지 않는 방법입니다. 그 이유는 여러가지가 있습니다만, Hibernate에서의 성능 이슈가 주된 원인중 하나로 생각되네요. JPA의 단방향 @OneTomany 관계를 맺게되면 내부적으로 @JoinColum이나 @JoinTable을 사용하여 외래 키를 관리합니다. 즉, OneToMany 관계에서는 JPA 내부적으로 JoinTable을 만들어서 JoinColumn을 생성, 관리함으로서 성능저하 및 관리포인트 증가라는 이슈를 만들어 냅니다. 토이 프로젝트로 진행하고 있는 ERD의 일부를 공유 드리자면, ※ 샘플 ERD ※ 1:N 구조 JPA 실행 결과 select p1_0.owner_owner_id, p1_1.pet_id, p1_1.breed, p1_1.created_.. 2023. 11. 23.