spring 我的存储库代码中的连接表查询中的Sping Boot 问题

4ngedf3f  于 2022-11-21  发布在  Spring
关注(0)|答案(1)|浏览(110)

在Sping Boot 中使用@Query时出现未满足的依赖关系错误
在我的存储库中,我添加了查询以连接表,但在运行时遇到错误

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<Employee,Long> {



@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<ResponseDTO> 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<Employee> findAllEmp(){
        return emprepo.findAll();
    }

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

我的React是:

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;

}
mspsb9vt

mspsb9vt1#

Spring Data告诉您查询无效。快速查看之后,您似乎缺少构造函数中的字段salAmount

相关问题