Estou tentando filtrar tarefa por status, mas trás todas as tarefas, segue o código:
@Repository
public interface TaskRepository extends JpaRepository<Task, Long>{
@Query(value = "SELECT * FROM TB_TASK T1 WHERE T1.STATUS = :statusCode", nativeQuery = true )
List<TaskDTO> listTaskByStatus(Long statusCode);
}
@Service
@Transactional(readOnly = true)
public List<TaskDTO> findlistTaskByStatus(Long statusCode) {
List<TaskDTO> list = taskRepository.listTaskByStatus(statusCode);
return list.stream().map(x -> new TaskDTO()).collect(Collectors.toList());
}
@Resource ou @Controller
@GetMapping(value = "?status={statusCode}")
public ResponseEntity<List<TaskDTO>> listStatus(@PathVariable Long statusCode){
List<TaskDTO> codeStatus = taskService.findlistTaskByStatus(statusCode);
return ResponseEntity.ok().body(codeStatus);
}
No Postman me trás o resultado de todas as tarefas, mesmo colocando o ID=1,2 ou 3, não esta filtrando:
No H2 a consulta funciona corretamente:
O mesmo ocorre para listar tarefas de um usuário especifico, só que me retorna status 500:
@Repository
public interface UserRepository extends JpaRepository<User, Long>{
@Query(value = "SELECT * FROM TB_USER_TASK T1" +
" INNER JOIN TB_USER T2 ON T1.USER_ID = T2.ID" +
" INNER JOIN TB_TASK T3 ON T1.TASK_ID = T3.ID" +
" WHERE T2.ID = :userCode ", nativeQuery = true)
List<User> listAllTasksByUser(Long userCode);
@Services
@Transactional(readOnly = true)
public List<UserDTO> findListAllTasksByUser(Long userCode) {
List<User> list = userRepository.listAllTasksByUser(userCode);
return list.stream().map(x -> new UserDTO()).collect(Collectors.toList());
}igite ou cole o código aqui
@GetMapping(value = "/{userCode}/tasks")
public ResponseEntity<List<UserDTO>> listAllTasksByUser(@PathVariable Long userCode){
List<UserDTO> codeUser = userService.findListAllTasksByUser(userCode);
return ResponseEntity.ok().body(codeUser);
}
No H2, tudo ok com a consulta:
Erro no Postman:
Link do repositorio:
GitHub do Projeto
Já pesquisei e fiz as modificações, mas sem sucesso, qualquer auxilio será bem vindo!