스프링 JWT 적용기 ( sql 적용 오류)

everyday_99·2023년 1월 1일
0

springboot

목록 보기
1/4

Users 테이블을 찾을 수 없다는 오류가 나온다

분명 users 테이블을 만들었는데??

오류를 해결하기 위해 보던 인강의 댓글들을 모두 뒤지기 시작했다.

이렇게 3가지의 방법을 제시해주는 댓글들이 있길래 모두 해봤다.

  • 방법 1

버전을 1.4.200으로 낮췄더니 갑자기 Driver 클래스가 사라졌다.

  • 방법 2

와우 놀랍도록 안된다!

  • 방법 3

와우 이번에는 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로 하고싶다는 욕심은 한스푼 덜어냈습니다..

refer

https://zzang9ha.tistory.com/371 // datasql 실행 오류
https://blog.naver.com/jsf3rd/150761434 // Table 이름 대소문자 구분에 대해서

0개의 댓글