2013-11-16 1 views
0

У меня есть таблица с именем подарки, которые содержат поле company_value_id и я хочу, чтобы выбрать для всех company_value_id,count(company_value_id) так, что результат будет список объектов, и каждый объект будет содержать company_value_id,count(company_value_id)Как выбрать значение и подсчитать весной jpa?

я использую пружинный JPA с аннотациями следующим образом:

public interface GiftsRepository extends JpaRepository<Gifts, String> { 

    @Query("from Gifts g where g.companyGuid = :companyGuid") 
    List<Gifts> getGiftsByCompany(@Param("companyGuid") String companyGuid); 

} 

сообщите пожалуйста, спасибо.

ответ

1

я был в состоянии выполнить это следующим образом:

@Query("select g.value.id,cr.value.name,count(g.value.id) from Gift g where g.user.id=:userId group by g.value") 
    List<Object[]> getUserGifts(
      @Param("userId") String userId); 

и в слое службы я извлечь значения следующим образом:

List<Object[]> results = giftsRepository 
       .getUserGifts(userId); 
for (Object[] result : results) { 
      String id = (String) result[0]; 
      String name = (String) result[1]; 
      int count = ((Number) result[2]).intValue(); 
     } 
0

Вам нужно добавить параметр к вашей функции, так же, как это:

@Query("from Gifts g where g.companyGuid = :companyGuid") 
    List<Gifts> getGiftsByCompany(@Param("companyGuid") String companyGuid,Pageable pageable); 

и pageabel может создать так:

Pageable pageable = new PageRequest(pageIndex, pageSize, Direction.ASC, sortColumn);