Dennis
Dennis

Reputation: 21

query id not return a unique result: 6

I have this scenario:

MedidasController.java

@DateTimeFormat(pattern="yyyy/MM/dd")
    @GetMapping("/{unidade_id}/{dataInicial}/{dataFinal}")
    public Medidas listaMedidasPeriodo(@PathVariable("unidade_id") Integer unidade_id, @PathVariable("dataInicial") @DateTimeFormat(iso=ISO.DATE) Date dataInicial, @PathVariable("dataFinal") @DateTimeFormat(iso=ISO.DATE) Date dataFinal) {
        Medidas medidas = medidasRepositorio.listarMedidasPeriodo(unidade_id, dataInicial, dataFinal);
        return medidas;
    }

MedidasRepositorio.java

@Query(value="SELECT * FROM my_table WHERE unidade_id = :unidade_id AND (data_medicao >= :dataInicial AND data_medicao <= :dataFinal)  ORDER BY data_medicao,hora_do_dia ASC;", nativeQuery=true)
    Medidas listarMedidasPeriodo(@Param("unidade_id") Integer unidade_id,
                            @Param("dataInicial") Date dataInicial, 
                            @Param("dataFinal") Date dataFinal );

I got this error: javax.persistence.NonUniqueResultException: query did not return a unique result: 6

What I am missing? I

Upvotes: 1

Views: 323

Answers (1)

0xh3xa
0xh3xa

Reputation: 4857

Add LIMIT 1 to your query because there is more than one value returning from the query (if you want to retrieve one value)

, or add the return of the method to be List<Medidas> (if you want to retrieve all values)

   @Query(value="SELECT * FROM my_table WHERE unidade_id = :unidade_id AND (data_medicao >= :dataInicial AND data_medicao <= :dataFinal)  ORDER BY data_medicao,hora_do_dia ASC;", nativeQuery=true)
   List<Medidas> listarMedidasPeriodo(@Param("unidade_id") Integer unidade_id,
                            @Param("dataInicial") Date dataInicial, 
                            @Param("dataFinal") Date dataFinal );

Upvotes: 1

Related Questions