개발자
완전신입입니다.. 몇일를찾아보고 해도 제가 로직을 잘못짠건지 모르겠어서 질문을 남깁니다 숙소등록을 구현중인데 숙소테이블accommodation, 객실정보테이블room_info 두개를 나눴고 객실정보테이블에 aid(숙소테이블 기본키) 외래키로 설정을 했습니다 그리고 마이바티스에 각 테이블별로 insert로 넣었고 MySql 자동키 부분 설정도하였습니다. 서비스단을 각 두개의 클래스를 묶고 roominfo에 aid를 받아서 저장하는 로직으로 넣었습니다 그리고 컨트롤단에서 PostMapping으로 두개를묶은 클래스를 파라미터로 넣었습니다 ㅠㅠ 여기서 궁금한게 1. 테이블을 나눠서 한번에 저장할 때 다른분들은 어떻게 처리하는지 궁금합니다. 2. 숙소등록을 입력할때 필드값이 동시에 진행되는부분이라 객실테이블에 지정된 외래키aid 가 아직 없으니까 null값으로 들어가서 자꾸 aid를 찾을수없다는오류가 나오는데 이 부분을 어떤식으로 처리해야하는지 키워드를 말씀해주시면 감사하겠습니다...

답변 1
안녕하세요 :) 스프링 부트로는 구현해 본 적은 없으나 대략 알고 있는 부분이 있어서 답변드려봅니다. 제 생각에는 숙소 테이블에 숙소 INSERT 후에 ID를 반환받아서 객실 테이블에 숙소 ID를 외래 키를 사용하면 될 것 같아요. 즉, 숙소와 객실이 동시에 생성되지 않고, 숙소 생성 후 객실이 생성되도록 애플리케이션 레벨에서 처리가 필요할 것 같아요.

Angela
작성자
백엔드 개발자 • 2024년 02월 20일
답변감사합니다! 숙소등록 유저페이지에서 입력할때 숙소테이블이랑 객실테이블에 필요한 값이 들어가서 동시에저장해야하는부분이라서 저도 처음이라 너무 헤맸는데요.. ㅠㅠ 코드를보니 1.객실테이블에 숙소테이블 외래키를 keyProperty="aid" 로만 넣고 마이바티스 필드값?으로 aid를 추가하지않았고 그 값을 제가 지정한 값으로 넣어주었습니다 2. 서비스단에 동시에 저장하는 메서드를 숙소를 정보를 저장하는곳에 추가하였습니다! 이렇게 두개 수정하였더니 동시이 저장되면서 숙소아이디를 받아오면서 객실정보에도 저장이 됐습니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!