Reputation: 21
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
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