소문자로 된 테이블이 있길래 생성 시에 오류인가 해서 지우고 다시 진행했는데 다음날에 보니까 또 있다.
이게, 세간에서 말하는 부활 입니까?
그럴리가 없음
근데 난 나름 확신이 있던게
ddl-auto: none
으로 해 둬서 JPA 코드에서 테이블 자체를 건드리지는 못할 거라고 생각했다.
결론적으로, jpa에서 소문자 이름으로 된 테이블을 만들어서, 그쪽이랑 데이터를 주고 받고 있었단 걸 깨달았다.
이거 자동 갱신 안 된다. (난 되는줄) 그래서 새로고침 버튼 수시로 눌러줘야 함.
솔직히 내가 이렇게 대놓고 대문자라고 써 뒀는데...
-> 이거 적용 안 됨.
JPA 기본 정책은 테이블 명이 소문자라고 정해둠. 그래서 저렇게 써 놔도 이름이 student
인 테이블이라고 인식하고 있는 것.
generate-ddl: true
설정을 해 두면 @Entity
붙은 엔티티에 대해 ddl을 생성, 실행한다.
즉 종합하자면 jpa에서 우선 소문자 이름으로 된 테이블을 찾았고, 그게 없으니까 생성까지 해서 연결해둔 것이다.
선택지가 두 가지 있다.
모든 테이블 명을 소문자로 변경
jpa의 네이밍 정책을 대문자 사용하도록 변경
즉 테이블 명을 소문자로 바꿀 건지, 대문자 테이블 명에 jpa를 맞출 건지이다.
개발 단계라서 데이터가 없기 때문에 이 김에 테이블 명을 소문자로 다 바꿨다.
그렇게 되면 연관 관계 꼬인다. (기존 ddl은 연관관계에 연결된 테이블명 역시 대문자로 작성함.)
연관 관계가 없는 것들은 이름만 바꾸고, 나머지는 지우고 ddl 수정해서 재생성했다.
삽질 해결!