2012-09-04 21 views
9

Aşağıdaki kodu kullanarak sorgumun sonuçlarını alamıyorum. Ben Map<ContentType... veya Map<String... kullanıyor olun ben aynı hatayı alıyorum: javax.persistence.NonUniqueResultException: Sonuç JPA Arşivlerin içinde birden fazla satır işlemek mümkün olmalıdır gibi görünüyor birden fazla unsurlarıJPA Deposu: javax.persistence.NonUniqueResultException: sonuç birden fazla öğe döndürüyor

döndürür. Başka eksiklikler için baktım, sadece eksik olabilirim ve sonuçlarla gelmek için zor bir zaman geçiriyorum.

Bunu çözmek için ne yapmam gerektiği ile ilgili herhangi bir öneriniz var mı?

@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

modelinizi tutmak

çalışan bu deneyin, bu sadece JPA, bu Bahar Veri JPA benziyor. – madth3

cevap

5

Sorun JPA buna eşleme sevmez böylece Map<ContentType, Integer>, benzersiz dizinin bir söz yok olduğu anlaşılmaktadır. Bunun yerine List<Map<ContentType, Integer>> kullanarak, harika çalışıyor!

0

o başlayanlar için listeye

@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); 
} 
İlgili konular