我有一个名为gift的表,其中包含字段company_value_id,我想对所有company_value_id,count(company_value_id)
进行选择,以便结果将是对象列表,每个对象将包含company_value_id,count(company_value_id)
我使用带有注释的spring jpa如下:
public interface GiftsRepository extends JpaRepository<Gifts, String> {
@Query("from Gifts g where g.companyGuid = :companyGuid")
List<Gifts> getGiftsByCompany(@Param("companyGuid") String companyGuid);
}
请告知,谢谢。
答案 0 :(得分:2)
我能够完成如下:
@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();
}
答案 1 :(得分: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);