2012-09-04 12 views
9

以下のコードを使用して、私のクエリの結果を取得できません。私はMap<ContentType...またはMap<String...を使用するかどうか、私は同じエラーを取得:javax.persistence.NonUniqueResultException:結果が複数の要素JPA Repository:javax.persistence.NonUniqueResultException:結果が複数の要素を返します

を返しJPAは、リポジトリ内の複数の行を処理できる必要がありますように思えます。私が見逃しているかもしれない他の注釈を見回し、結果が出るのに苦労しています。

私はこれを解決するために何をすべきかに関する提案はありますか?

@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

でモデルを保つ

作品これを試してみて、これだけではなく、JPAがあり、それは春データJPAのように見えます。 – madth3

答えて

5

問題はJPAは、それへのマッピングを好きではないのでMap<ContentType, Integer>は、一意のインデックスの約束を持っていないということであったことが表示されます。代わりにList<Map<ContentType, Integer>>を使用することによって、素晴らしい動作します!

0

が、それは初心者のためのリスト

@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); 
} 
関連する問題