Проблема Spring Boot в запросе таблицы соединения в коде моего репозитория ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Проблема Spring Boot в запросе таблицы соединения в коде моего репозитория

Сообщение Anonymous »

Получение ошибки неудовлетворенной зависимости при использовании @Query в Spring Boot
В моем репозитории я добавил запрос на объединение таблиц, но получаю ошибку во время выполнения
ERROR:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'empcontroller': Unsatisfied dependency expressed through field 'emprepo'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'employeeRepository' defined in com.emp.employeeMangement.api.Repository.EmployeeRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.List com.emp.employeeMangement.api.Repository.EmployeeRepository.getJoinInformation(); Reason: Validation failed for query for method public abstract java.util.List com.emp.employeeMangement.api.Repository.EmployeeRepository.getJoinInformation()!; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.emp.employeeMangement.api.Repository.EmployeeRepository.getJoinInformation()!

Мой код:
package com.emp.employeeMangement.api.Repository;

import com.emp.employeeMangement.api.DTO.ResponseDTO;
import com.emp.employeeMangement.api.Model.Employee;
import org.springframework.context.annotation.Bean;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface EmployeeRepository extends JpaRepository {

@Query(value = "SELECT new com.emp.employeeMangement.api.DTO.ResponseDTO(e.empName,e.gender,e.email,e.empCode,a.noOfPresent,a.noOfAbsent) from Employee e JOIN e.Attendence a")
public List getJoinInformation();

}

Код моего контроллера:
package com.emp.employeeMangement.api.Controller;

import com.emp.employeeMangement.api.DTO.RequestDTO;
import com.emp.employeeMangement.api.DTO.ResponseDTO;
import com.emp.employeeMangement.api.Exception.ResourceNotFoundException;
import com.emp.employeeMangement.api.Model.Employee;
import com.emp.employeeMangement.api.Repository.AttendenceRepository;
import com.emp.employeeMangement.api.Repository.EmployeeRepository;
import com.emp.employeeMangement.api.Repository.SalaryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class Empcontroller {

@Autowired
private EmployeeRepository emprepo;
@Autowired
private AttendenceRepository attrepo;
@Autowired
private SalaryRepository salRepo;

@PostMapping("/saveEmployee")
public Employee saveEmployee(@RequestBody RequestDTO dto){
return emprepo.save(dto.getEmployee());
}

@GetMapping("/findAllEmp")
public List findAllEmp(){
return emprepo.findAll();
}

@GetMapping("/getInfo")
public List getJoinInformation(){
return emprepo.getJoinInformation();
}

Мой ответ:
package com.emp.employeeMangement.api.DTO;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class ResponseDTO {
private String empName;
private String email;
private String gender;
private int empCode;
private int noOfPresent;
private int noOfAbsent;
private int salAmount;

}


Подробнее здесь: https://stackoverflow.com/questions/744 ... itory-code

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