안녕하세요 항상 강의 잘 보고 있습니다.
다름이 아니라 영한님의 jpa강의를 토대로 제가 하는 토이프로젝트에 적용하는 과정에서 궁금한 점 몇가지가 생겨서 질문드립니다.
application.yaml파일에서 ddl-auto: create-drop으로 했을때 콘솔창에서는 해당 테이블이 없다면서 자꾸 오류가 났었습니다(콘솔에서는 오류가 나오나 DB상으로는 적절하게 테이블이 생성되었음). 그러나 먼저 ddl-auto: create로 해당 테이블들은 생성해놓고 그 다음 update를 하니 오류없이 동작했습니다. 강의를 들을때는 그러지 않았던것 같았는데 원래 이런건가요?
영한님께서 강의 도중 다대다 관계는 1대다, 다대1 관계로 풀어서 진행하라고 하셨던 기억이 납니다. 그렇게 하는 이유에 대해서는 이해를 하였습니다. 저는 기존의 관계형 데이터 베이스에서는 기존의 다대다 관계를 이루고 있던 테이블들의 pk를 가져와서 새로운 테이블에 FK로 넣었고 이러한 두개의 FK를 묶어서 하나의 PK로 만들었습니다. 그러나 강의에서는 기존의 테이블들을 이어주는 테이블에 FK로 넣어주기는 하였으나 아예 새로운 PK를 만들어서 강의를 진행하시던 기억이 납니다. 여기서 제가 궁금한 점은 기존에 제가 했던 방식대로 하려면 @Embedable으로 복합키를 만들어서 진행을 해야할까요? 아니면 기존 하던 방식 말고 새로운 PK를 만들어서 진행하는 방식이 훨씬 깔끔할까요?
제가 진행하는 토이프로젝트의 환경은 aws ec2를 사용하고 있으면 DB는 mariadb를 사용하고 있습니다. 자바 버전은 17입니다.
안녕하세요. 이상민님
1. 다음 두 옵션은 모두 테이블을 삭제한 다음에 테이블을 생성합니다.
create 테이블 삭제 -> 테이블 생성
create-drop 테이블 삭제 -> 테이블 생성 -> 애플리케이션 종료시 테이블 삭제
create-drop 옵션을 사용하게 되면 최초 테이블 삭제에 실패하면서 오류 메시지가 나올 수는 있습니다. 이 부분이 정확하지는 않은데, 하이버네이트와 DB의 버전에 따라서 이런 메시지가 나올 수 있는데요. 이 부분은 무시하셔도 될 것 같습니다.
2. 다음을 참고해주세요^^
https://www.inflearn.com/questions/185233
감사합니다.
답글