sggnology
하늘속에서IT
sggnology
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • Algorithm (31)
      • Programmers (27)
      • Baekjoon (4)
    • WIKI (4)
      • VirtualBox (1)
      • Power Toys (1)
    • NodeJS (4)
      • nvm (1)
      • React (1)
      • Vue (1)
    • Dev Language (3)
      • Java (2)
      • Kotlin (1)
    • Spring Boot (17)
      • Gradle (1)
      • JPA (3)
    • DB (4)
      • MariaDB (3)
      • Redis (0)
    • Android (6)
      • Debug (3)
    • Nginx (3)
      • Debug (1)
    • Intellij (0)
    • Network (1)
    • Git (2)
      • GitHub (2)
    • Chrome Extension (0)
    • ETC (5)
      • Monitoring (2)
    • Linux (1)
      • WSL (1)
    • Visual Studio (1)
    • Side Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘
  • docker
  • 레벨2
  • spring boot
  • Android Studio
  • JPA
  • 레벨3
  • kotlin
  • 티스토리챌린지
  • 프로그래머스
  • 고득점KIT
  • mariadb
  • 백준
  • 안드로이드 스튜디오
  • 오블완
  • DB
  • nginx
  • java
  • 연습문제
  • 고득점 Kit

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sggnology

하늘속에서IT

DB

[DB] JPA 버전 다운그레이드 과정에서 동작하던 sql 이 동작하지 않는다면(feat. native query)

2023. 9. 15. 16:57
728x90

발단

정부 프레임워크 사용을 위해 기존의 spring boot v3 가 아닌 v2 로 다운그레이드를 진행하면서 sql 이 실행되지 않아 동작하지 않는 경우가 발생하였다.

프로젝트를 진행하며 DB 검색을 위한 조건이 많지 않다면 JPA 의 native query 를 사용하였습니다. 이 때 sql 작성시 `;`을 붙여 해당 query 의 끝을 의미하게 하였습니다.

 

환경

  • spring boot starter jpa 
    • 페이징과 같이 사용
  • ...

원인

Spring boot 의 다운그레이드를 언급한건 jpa 의 버전이 spring boot 버전에 따라 달라지는 것을 명시하기 위함이다.

마이그레이션 전에 동작했지만 이후 동작하지 않은 이유는 `;` 때문이었습니다.

 

JPA 버전에 따른 sql 전처리?

v3 에서는 `;` 문자가 sql 마지막에 추가되어 있어도 소거한뒤 페이징을 위한 구문을 추가하여 sql 을 구성하는 듯 하였으나, v2 에서는 v3 에서와 같은 동작을 보장하지 않는 듯 합니다.

 


해결

(conn=641) You have an error in your SQL syntax; check the manual that corresponds to your ..db.. server version for the right syntax to use near 'limit 10' at line 29

 

만약 native query 를 paging 과 같이 사용하고 있어서 위와 같은 오류가 발생하였다면 sql 끝에 입력되어있는 `;` 를 소거하시고 확인해보세요.

728x90
    sggnology
    sggnology
    하늘은 파란색이니까 내 삶도 파란색이길 ㅎㅎ

    티스토리툴바