본문 바로가기
Error

Spring 3.0이후 변경해야하는 의존성_P6spy, QueryDsl, MySql

by 히포파타마스 2023. 6. 4.

Spring 3.0 이후 변경해야 하는 의존성_P6spy, QueryDsl

 

기존에 Spring 2.75 버전을 사용하다 이번에 새로 프로젝트를 시작할 때 Spring 3.0 이상의 버전을 사용했다.

이전 버전에서 사용하던 build.gradle에 명시된 의존성을 그대로 사용하려 했으나..! 

몇몇 의존성들이 제대로 적용이안되고 예외가 발생하였다. 

 

현재까지 내가 진행하는 프로젝트에서 변경해야 했던 것들은 P6spy, QueryDsl, Mysql이 있었다.

 

 

1. P6spy

P6spy는 JPA가 DB에 날리는 쿼리문을 보기 좋은 형태로 로그로 찍어주는 라이브러리다.

Spring 2.75 버전을 사용할 때는 1.80 버전을 사용하였는데 Spring 3.0 버전에서 이를 그대로 사용하려니 제대로 작동하지 않는 문제가 발생하였다.

 

Spring 3.0 버전 이상에서 P6spy는 1.90 버전을 사용해야 한다.

 

[p6spy]

implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'

 

 

 

2. QueryDsl

기존에 QueryDsl을 사용하기 위한 의존성은 다음과 같다.

 

[Spring 2.75_QueryDsl]

implementation 'com.querydsl:querydsl-core'
implementation 'com.querydsl:querydsl-jpa'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
annotationProcessor("jakarta.persistence:jakarta.persistence-api")
annotationProcessor("jakarta.annotation:jakarta.annotation-api")

 

Spring 3.0 이상의 버전에서도 build.gradle에 이와 같이 의존성을 명시하고 프로젝트를 진행하려고 했으나..

온갖 수를 쓰고 아주 지랄 염병을 해도 빌드 후에 QClass가 생성이 되지 않았다.

 

Spring 3.0 이상 버전에서는 jpa 문구 대신 jakarta를 명시해야 한다.

 

오라클의 Java 저작권 때문에 이렇게 바뀌었다고 한다.

 

[Spring 3.0_QueryDsl]

implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

 

jakarta 명시 후 QClass도 잘 생성되고 QueryDsl 역시 잘 동작하였다.

 

 

 

3. MySql

Spring 2.75 버전에서는 다음과 같이 java를 명시해 줬지만

 

[Spring 2.75_Mysql]

runtimeOnly 'mysql:mysql-connector-java'

 

Spring 3.0 버전 이상부터는 java를 j로 변경해줘야 한다.

 

이것 또한 오라클의 Java에 대한 저작권 때문이라고 한다

 

[Spring 3.0_Mysql]

runtimeOnly 'com.mysql:mysql-connector-j'

댓글