
[Spring JPA] 영속성 컨텍스트 시리즈 (2) - N:M 관계 엔티티로 풀어내기
Porring 프로젝트를 하면서 다대다 관계를 만들 때 관계에 대한 엔티티를 만들지 말지를 고민했는데, 결국엔 만들었다. 왜냐하면, 관계 자체를 검색할 일이 많았으니까 관계가 주를 이룬다고 생각했기 때문에 그렇게 생각했다. 하지만 다대다 관계에서는 만들 수도 있고, 만들지 않을 수도 있다. @ManyToMany 어노테이션을 사용하면 만들 수 있다...
Porring 프로젝트를 하면서 다대다 관계를 만들 때 관계에 대한 엔티티를 만들지 말지를 고민했는데, 결국엔 만들었다. 왜냐하면, 관계 자체를 검색할 일이 많았으니까 관계가 주를 이룬다고 생각했기 때문에 그렇게 생각했다. 하지만 다대다 관계에서는 만들 수도 있고, 만들지 않을 수도 있다. @ManyToMany 어노테이션을 사용하면 만들 수 있다...
JOINED 를 이용해 상속받은 JPA Entity 는 어떻게 저장될까라는 궁금증으로 시작했다. Repository 에서 저장 될 때 기본적인 엔티티가 어떻게 저장되는지가 궁금했고, 이왕 알아보는 김에 Hibernate 에서 정확하게 어떻게 구현이 되었는지 살펴보는 것까지 목표로 한다. 서론 결국 문제는 단순 휴먼 에러였다. 왜냐하면, 보...
Porring 프로젝트를 진행하면서 엔티티 설정을 마치고, 복합키에 관한 지적을 받았다. AI를 이용해서 만든 코드인데, 미처 검증하지 못한 부분에 대해서 다시 생각해보게 되었고, 복합 PK 키를 JPA 에서 어떻게 설정하는지 한번 알아보려고 한다. 먼저, 복합 키란? 복합키는 말 그대로 여러 개의 컬럼들을 하나로 묶어서 키로 정의한 것을 복...
Type 을 정의하는 테이블을 정의해서 매핑하는데, Entity 와 ManyToOne을 쓰면 적절하지 않을 것 같았다. ENUM 을 쓰면 적절하지 않을 것 같다는 의견을 검색하다가 보았고, 테이블을 정의해서 ENUM 처럼 쓰는게 좋아보일 것이라 판단했는데, Claude 로부터 @Converter 를 써보라는 추천을 받아서 알게 되었고 학습하게 되었다...
Porring 백엔드를 구현하면서, OAuth 혹은 네이티브 로그인 계정에 대한 ERD 타입을 슈퍼타입과 서브타입으로 정의하였다. 데이터베이스 상으로만 봤지만, 실제로 어떻게 구현을 해야할까? 단순 쿼리를 한다면 되겠지만, 복잡한 작업이 될 것이며, 쿼리 중간에 예상치 못한 버그가 있을 수 있다. JPA 에서는 어떻게 되는지 알아보자! @Inh...