[Spring/개발] - TMI(2)

동글이·2022년 8월 14일
0

Spring/개발

목록 보기
3/7

포스트맨에서 배열로 받은 data 하나씩 db에 저장하기

  • requestbody 한번에 받아서 여러 db에 나누어 저장하는 방법을 해내고(TMI(1)참고) 프로젝트 생성하기는 다했다~하고 신나하고 있는데 뭐가 또 잘 안되었다..
  • RDBMS로 만들어 테이블을 쪼개어 배열로 들어오는 data는 다른 테이블에 저장되는 방식으로 개발을 하였다.
  • 하여 배열로 들어오게 되는 data를 쪼개어 다른 db에 하나씩 저장해 주어야했다.
  • 예를 들어,
    해당 json을 저장하려고 했는데 recruitInfo 부분이 저장되지 않았다

해결 방법

  • 먼저 ProjectCreateDTO에서 RecruitInfo를 배열로 선언해 주었다
@Getter @Setter
public class ProjectCreateDTO {
    private Project project;
    private ProjectSkill projectSkill;
    private RecruitInfo[] recruitInfo;
}
  • 다음으로 RecruitInfoService로 가서 for문을 돌려 하나씩 저장할 수 있게 해주면 끝
public class RecruitInfoService {
    private final RecruitInfoRepository recruitInfoRepository;

    @Transactional
    public Long register(RecruitInfo[] recruitInfo){
        for (int i=0; i<recruitInfo.length;i++){
            recruitInfoRepository.save(recruitInfo[i]);
        }
        return recruitInfo[0].getId();
    }

}
  • 컨트롤러랑, 리퍼지토리는 건들이지 않았다!

느낀점

  • 이것저것 찾아봤었는데 결국 생각보다 간다한게 풀렸다. 전문가들은 한방에 찾아서 슉샥 고쳤겠지.. 경험치를 올려서 나도 딱보면 똭 해결하도록 더 열심히 코딩을 하여야겠다!

Feature#8(프로젝트 생성) 남은 이슈

  • leader 까지 해서 나중에 테스트
  • project 엔티티에 이미지 추가
  • project 엔티티 저장할때 자동적으로
    1. status, like_count => default 검수, 0 으로 저장되게
    2. start_date, end_date => 현재시각으로
  • recruit_info 엔티티 저장할때 자동적으로 complet_count => 0으로 저장되게

  • FK 값 가져오는 방법 고민

profile
기죽지 않는 개발자

0개의 댓글