2012-09-04 11 views
9

Utilizando el siguiente código no puedo obtener los resultados de mi consulta. Si utilizo Map<ContentType... o Map<String... consigo el mismo error: javax.persistence.NonUniqueResultException: resultado devuelve más de un elementosRepositorio JPA: javax.persistence.NonUniqueResultException: el resultado devuelve más de un elemento

Parece que la APP debe ser capaz de manejar múltiples filas en los repositorios. He buscado otras anotaciones que podría estar perdiendo y estoy teniendo dificultades para obtener resultados.

¿Alguna sugerencia sobre qué debo hacer para resolver esto?

@Transactional 
public interface ContentRepository extends JpaRepository<Content,Integer>{ 

    .... 

    @Query(nativeQuery=true, value="SELECT content_type, COUNT(*) AS myColumn FROM dbo.content GROUP BY content_type") 
    Map<ContentType, Integer> getContentCountByType(); 

} 
+2

Para empezar, se trata no sólo de la APP, parece que la primavera de datos JPA. – madth3

Respuesta

5

Parece que el problema era que Map<ContentType, Integer> no tiene una promesa de un índice único, por lo que no le gusta la APP asignación a la misma. ¡Al usar List<Map<ContentType, Integer>> en cambio, funciona genial!

0

probar este funciona

mantener su modelo en la lista

@RequestMapping(value="/deleteDriver/{id}" , method=RequestMethod.POST) 
public ResponseEntity<Object> deleteDriver(@PathVariable("id") Integer id) 
{ 
    List<Driver> delete_driver=adminService.getDriverById(id); 
    Map<String,Object> response=new HashMap<>(); 


    if(delete_driver==null) 
    { 
     response.put("status", "Failure"); 
     return new ResponseEntity<Object>(response,HttpStatus.NO_CONTENT); 
    } 
    else 
    { 
     response.put("status", "Success"); 
     adminService.delete(delete_driver); 
     return new ResponseEntity<Object>(response,HttpStatus.OK); 
    } 

} 

then in your repository

@Override 
public void delete(List<Driver> delete_driver) { 

    driverRepository.delete(delete_driver); 
} 
Cuestiones relacionadas