오랜만에 QueryDSL을 통해 쿼리를 작성하려고 하는데 RefreshToken Entity에서 큐클래스가 임포트 불가능한 문제가 발생했다.
다른 Entity에서는
사진처럼 잘 import가 되고 있는데 RefreshToken만 import하면 빨간줄 떴다가 바로 삭제가 돼서 QClass가 없나 싶어서 확인해봤다.
분명 QClass는 다 만들어져 있는데?.. 여기서 아차 싶은 부분이 생겼다
대부분 보통 QClass는 build/generated 폴더에 만드는 걸로 알고 있는데 내 코드는 src/main에 생성하도록 지정이 되어 있던 것.
근데 여태까지 문제 없이 사용했는데? 이 방법이 진짜 문제가 없는 건지 궁금해지기 시작했다.
일단 김영한님도 그렇고 호돌맨님의 인프런 댓글도 확인해본 결과 전부 build/generated에 생성을 권장한다.
그래서 나도 build.gradle을 일단 수정하는 방향으로 진행했다.
// 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"
clean {
delete file('src/main/generated')
}
다시 캐시를 삭제하고 진행하니
빌드에 제대로 QClass가 생긴 것을 확인할 수 있었다.
그리고 다시 import를 진행하려는데
계속 refreshToken이라는 이름으로 생성이 불가능하다고 나온다.
근데 뒤에 1을 붙이니 된다? 뭔가 이미 refreshToken이라는 게 어딘가에 존재하는 것이 분명하다는 생각이 들었다.
문제는 RefreshToken QClass에서 발생했다.
public final StringPath refreshToken = createString("refreshToken");
public static final QRefreshToken refreshToken1 = new QRefreshToken("refreshToken1");
QClass 내부에 보면 이미 refreshToken이라는 이름이 변수로 잡혀있고, 생성을 위한 변수의 이름은 refreshToken1로 잡혀있던 것.
다른 QClass는 문제가 없는데 얘만 왜 이렇게 됐던 것일까?
public class RefreshToken {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;
@Column(nullable = true, length = 200)
private String accessToken;
@Column(nullable = true, length = 200)
private String refreshToken;
private LocalDateTime expireDate;
문제는 Entity 필드가 문제가 됐던 것이라 판단된다.
필드의 이름도 refreshToken이라는 이름이 있고, Entity의 이름도 동일하기에 QClass를 생성하면서 문제가 발생하는 것이다. 이 부분까지 생각해서 이름을 지었어야 했었다...
우선 import를 할 때 refreshToken1로 사용하는 걸로 진행해야겠다.
'오류해결' 카테고리의 다른 글
pinia의 piniaPluginPersistedstate가 적용이 안 된다. (0) | 2024.05.15 |
---|---|
스프링 시큐리티 permitall이 먹지 않는 상황 발생 (0) | 2024.04.16 |
Did not find any jobs with GenericTrigger configured! (젠킨스 에러) (0) | 2024.04.04 |
github webhook 502 에러 발생 (0) | 2024.04.04 |