ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Boot JPA와 Tibero6 연동 간 발생했던 에러들 정리
    Tibero DB (Tmax AI Bigdata Academy) 2023. 11. 11. 09:07

    이제 본격적인 팀 프로젝트가 시작되었다. 우리 팀의 경우 이미지 인식을 주제로 하는 프로젝트를 진행하게 되었고, 백엔드의 경우 두 개의 프레임워크를 사용하기로 했는데 하나는 Flask, 나머지 하나는 SpringBoot이다.

    사용자가 image를 보내면 Flask를 통해 학습시킨 AI 모델에 전달하여 결괏값을 보내주고,

    AI와 관련되지 않은 다른 기능들은 SpringBoot를 통해 구현하려고 한다.

    사실 Django 하나로 모두 구현해도 되지만, 현 팀원들의 니즈와 현재 공부하고 있는 분야를 최대한 적용하고자

    위와 같은 결정을 하였다!

     

     

     

    본론으로 들어와서,

    현재 SpringBoot와 Tibero6를 로컬환경에 연결하면서 발생했던 오류들과 어떤식으로 해결했는지 기록해두려고 한다.

     

    아래의 Tibero 에러 참조 안내서를 다운받아 도움을 받았다.

    https://www.tmaxtibero.com/download.do?board_file_seq=102&file_no=1

     

    📖 Caused by: java.sql.SQLException: JDBC-7207:New identifier required: 'USER' is a reserved word.

    처음에 user entity를 통해 user 테이블을 생성하려고 했는데 위와 같은 오류가 발생했다.

     

    에러 참조 안내서에서는 다른 이름을 사용하라고 안내하고 있는데, 평소 MySQL을 사용할 때는 문제가 없었는데

    엔티티를 생성하자마자 오류가 발생하여 적지 않은 당황을 하였다..

    Tibero6에서 USER가 예약 단어로 지정되어 테이블을 생성시 문제가 발생하는 것 같아

    user라는 이름 대신, member로 변경하여 해결하였다.

    ALTER USER tibero
    IDENTIFIED BY tmax123;

     

    아마 위와 같은 경우처럼 USER를 문법에서 사용하니 오류가 발생한 것이 아닌가 추측해본다..!

     

     

     

    📖 Caused by: java.sql.SQLException: JDBC-7045:A column contains a NULL value: cannot create or enable the constraint.

    바로 위 오류를 해결하고 member 테이블에 컬럼들을 생성하였는데 위와 같은 오류가 발생했다.

     

    해당 컬럼에 NULL 값을 허용하는지 체크해보라는데, 난 분명 모든 컬럼에 NOT NULL 설정을 했는데...

    꽤 오래 이 오류를 해결하기 위해 씨름하다, 정말 어이없게 해결해버렸다.

    혹시나 해서 tbsql로 접속하여 desc member;로 member 테이블을 조회해봤는데

    몇개의 컬럼이 Null 값이 허용되도록 member 테이블이 만들어져있었다.

    이미 만들어져있는 member 테이블을 지우고 다시 생성해보니 오류 없이 잘 진행되었다..

    (이것 저것하다가 테이블이 만들어져 버린듯..)

    위 오류가 뜨면 사전에 만들 테이블에 컬럼이 NULL값이 포함되어 있고, 해당 컬럼을 NOT NULL로 변경하려는건 아닌지 확인해보자...

     

Designed by Tistory.