Users 테이블을 찾을 수 없다는 오류가 나온다
분명 users 테이블을 만들었는데??
오류를 해결하기 위해 보던 인강의 댓글들을 모두 뒤지기 시작했다.
이렇게 3가지의 방법을 제시해주는 댓글들이 있길래 모두 해봤다.
버전을 1.4.200으로 낮췄더니 갑자기 Driver 클래스가 사라졌다.
와우 놀랍도록 안된다!
와우 이번에는 users가 없다네?
방법2를 보면 user가 h2 데이터베이스의 예약어로 사용되기 때문에 사용할 수 없다는 이야기가 있다.
그래서 방법3을 사용해봤는데 똑같이 users 테이블이 없다고 한다?
테이블이 없는데 insert를 하려고 해서 나는 오류로 생각이 된다.
그럼 왜 테이블이 없을까?
스프링 부터 2.4 -> 2.5로 넘어갈때 hibernate 설정에 변화가 있다고 했다.
hibernate가 초기화 되기 이전에 sql이 실행되기 때문이라고 한다.
이부분을 설정해주면 성공한다해서 해봤는데 안된다.
자 그럼 이제 원인이 hibernate 문제인걸 알았고 난 hibernate 를 모르니 hibernate를 먼저 공부하고 이 오류를 정복해 보겠다.
물론 sql을 삭제하고 그냥 실행하면 문제없이 잘 실행되지만 뭔가 포기하는 느낌이 들었다.
hibernate에 대해 가볍게 공부를 해봤다.
https://velog.io/@hongsuk99/Hibernate
근데 문제는 hibernate가 아니였다.. 정말 쉽게 해결했다..
해결하고 너무 쉽게 해결해버린 내 자신이 미웠다.. 이런것도 모르다니..
이곳에 sql 쿼리를 잘 보면 이곳에 있는 쌍 따옴표를 지웠더니 언제 그랬냐는듯 오류가 해결됐다…
왜 해결이 된건지는 모르겠다.
Sql 문법상 테이블 이름을 “”로 감싸는게 문제가 되는건가 싶다.
“테이블명이 예약어(select, where....) 인 경우 쌍따옴표를 이용해서 감싸줘야 합니다.”
이 말에 따르면 예약어인경우에는 “”로 감싸줘야 한다고 한다.
인프런에 강의를 올려주신 선생님께서 올려주신 레포에 있는 sql을 가져와서 썼습니다.
자 그럼 이제 user로 이름을 바꾸고도 되는지 실험해보자.
안된다. “”로 감싸줘도 안된다.
결국 난 3번 테이블을 users로 변경하고 sql데이터 쿼리에서 “”를 빼고 users로 변경하고 해결했다.
user로 하고싶다는 욕심은 한스푼 덜어냈습니다..
https://zzang9ha.tistory.com/371 // datasql 실행 오류
https://blog.naver.com/jsf3rd/150761434 // Table 이름 대소문자 구분에 대해서