Querydsl не генерирует Q-класс с помощью gradleJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Querydsl не генерирует Q-класс с помощью gradle

Сообщение Anonymous »

Обратная связь.java:

Код: Выделить всё

package org.sglnu.feedbackservice.domain;

import jakarta.persistence.Entity;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import org.springframework.data.jpa.domain.support.AuditingEntityListener;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table(name = "feedback")
@Entity
@EntityListeners(AuditingEntityListener.class)
public class Feedback {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long userId;
private Long eventId;
private String content;

}
FeedbackResponse.java:

Код: Выделить всё

package org.sglnu.feedbackservice.dto;

import com.querydsl.core.annotations.QueryEntity;

@QueryEntity
public record FeedbackResponse(Long id, Long userId, Long eventId, String content) {
}
FeedbackController.java

Код: Выделить всё

package org.sglnu.feedbackservice.controller;

import com.querydsl.core.types.Predicate;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.sglnu.feedbackservice.dto.FeedbackRequest;
import org.sglnu.feedbackservice.dto.FeedbackResponse;
import org.sglnu.feedbackservice.service.FeedbackService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/feedbacks")
@RequiredArgsConstructor
@Tag(name = "Feedback Controller", description = "Feedback API")
public class FeedbackController {

private final FeedbackService feedbackService;

@GetMapping
public Page  findAll(Pageable pageable, Predicate filter) {
return feedbackService.findAll(pageable, filter);
}

@GetMapping("/{feedbackId}")
@ResponseStatus(HttpStatus.OK)
public FeedbackResponse findByFeedbackId(@PathVariable Long feedbackId) {
return feedbackService.findByFeebackId(feedbackId);
}

@GetMapping("/users/{userId}")
@ResponseStatus(HttpStatus.OK)
public FeedbackResponse findByUserId(@PathVariable Long userId) {
return feedbackService.findByUserId(userId);
}

@PostMapping("/leave-feedbacks")
@ResponseStatus(HttpStatus.CREATED)
public FeedbackResponse leaveFeedback(@RequestBody FeedbackRequest feedbackRequest) {
return feedbackService.saveFeedback(feedbackRequest);
}

}
build.gradle(служба обратной связи)

Код: Выделить всё

buildscript {
ext {
springCloudVersion = "2023.0.1"
queryDslVersion = '5.1.0'
mapStructVersion = '1.5.5.Final'
springCloudVersion = '2023.0.1'
}
}

plugins {
id 'java'
id 'org.springframework.boot' version '3.2.4'
id 'io.spring.dependency-management' version '1.1.4'
}

repositories {
mavenCentral()
}

group = 'org.sglnu'
version = '0.0.1-SNAPSHOT'

java {
sourceCompatibility = '21'
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'
implementation 'org.flywaydb:flyway-core'

implementation "org.mapstruct:mapstruct:${mapStructVersion}"
implementation "com.querydsl:querydsl-core:${queryDslVersion}"
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"

implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'

compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.postgresql:postgresql'

annotationProcessor 'org.projectlombok:lombok'
annotationProcessor "org.projectlombok:lombok-mapstruct-binding:0.2.0"
annotationProcessor "org.mapstruct:mapstruct-processor:${mapStructVersion}"
annotationProcessor(
"com.querydsl:querydsl-apt:${queryDslVersion}:jakarta",
"jakarta.persistence:jakarta.persistence-api:3.1.0"
)

testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}

tasks.named('test') {
useJUnitPlatform()
}

bootJar{
mainClass = 'org.sglnu.categoryservice.CategoryServiceApplication'
}
Проблема:
Когда я отправляю запрос GET, чтобы получить все отзывы, я получаю сообщение об ошибке java.lang.ClassNotFoundException: org.sglnu.feedbackservice.dto. QFeedbackResponse, но когда я отправляю запрос GET, чтобы получить, например, отзыв с id=1, я получаю ответ ОК (FeedbackResponse).
Я не знаю, как его решить. ИИ говорят, что проблема в обработке аннотаций, но ничего не изменилось. Я использовал тот же build.gradle в других микросервисах, и все было ок.
Не знаю, как это решить. ИИ говорят, что проблема в обработке аннотаций, но ничего не изменилось. Я использовал тот же build.gradle в других микросервисах и все было ок.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-gradle
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»