JPA 3

📑 JPA 연관 관계 순환참조로 인한 직렬화 에러 해결 방법

DBMS에서 각 테이블간의 연관관계를 외래키로 설정하듯이 JPA에서도 두 엔티티 간의 연관관계를 설정해주어야 한다. JPA의 연관관계의 경우 단방향이 아닌 양방향으로 관계를 설정할 수 있는데, 이렇듯 양방향으로 설정된 관계에서 한 엔티티를 조회하는 경우 순환참조 에러가 발생한다. 프로젝트를 진행하던 중 맞이하게 된 순환 참조 예시를 보여주고, 해당 에러를 해결한 방법을 설명하겠다. 가장 처음 기획 의도는 하나의 자산에 최대 3장의 이미지를 등록할 수 있게 하려고 했고, 자산에서는 이미지 리스트를 조회할 수 있도록 하고, 이미지에서는 해당 이미지가 어떤 자산의 이미지인지 확인할 수 있도록 자산 id를 조회할 수 있도록 하고자 했다. 그래서 아래와 같이 두 엔티티의 관계를 자산 : 이미지 = 1 : N으로 ..

📑 KAS_Self Project_Day1

매번 개인 프로젝트를 시작해야지, 해야지 하지만 시작은 하지 않고 놀기만 했던 것 같다.. 그러다가 성당에서 행사때마다 간단하게 경량형 프로그램을 개발해서 사용하긴 했는데 이번에는 조금 더 각 잡고 천천히 그리고 꼼꼼하게 하나의 시스템을 개발해보려고 한다. 배포까지는 정식 서비스 등록은 어렵겠지만,,, 스프링 부트 프로젝트를 윈도우용 실행파일(.exe)로 만들어서 로컬 PC에서 실행할 수 있는 웹페이지를 제작해보고자 한다. 메인 기능은 자산 관리 시스템이다. 제목에서 보면 알겠지만 Kuui Asset Management System이다. 내가 속한 봉사단체가 학생들을 대상으로 교리 및 행사를 하다 보니 이런저런 물질적인 재산이 엄청 많다... 매번 행사 때마다 물품을 빼서 쓰고, 빌려주고 하면서 주기는 ..

📑 테스트 프로젝트 생성_사원관리

본격적으로 queryDsl을 학습하기 전에 학습에 필요한 간단한 사원관리 프로젝트를 생성하고자 한다. 그동안은 스프링 부트의 버전을 2.7.x 버전을 사용했지만 이번에는 3.0대 버전으로 업그레이드 하여 생성을 한 후에 그동안 했던 설정들이 변경된 부분을 동시에 학습해보고자 한다. 1. 프로젝트 생성 - (spring boot 3.0.12, java version 17) - build.gradle(dependency), aplication.yml(spring, jpa, log 셋팅) 2. 엔티티 생성 - 엔티티를 생성 후에 프로젝트를 실행하여 로그 상에서 jpa가 테이블을 만들어주는 지 확인 - ddl-auto를 create로 설정하여 엔티티 설정에 맞게 테이블을 생성하고, data.sql로 데이터 초기..