4 回答

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
/* *?@Query的sql使用原生sql語句 *?findSurveyCount()的返回值使用Map<String,Object> */ @Query(value?=?"select?count(v)?as?cnt,?v.answer?from?Survey?v?group?by?v.answer", ????????nativeQuery=true) public?List<Map<String,Object>>?findSurveyCount();

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
此SQL查詢返回List <Object []>將。
您可以這樣操作:
@RestController
@RequestMapping("/survey")
public class SurveyController {
@Autowired
private SurveyRepository surveyRepository;
@RequestMapping(value = "/find", method = RequestMethod.GET)
public Map<Long,String> findSurvey(){
List<Object[]> result = surveyRepository.findSurveyCount();
Map<Long,String> map = null;
if(result != null && !result.isEmpty()){
map = new HashMap<Long,String>();
for (Object[] object : result) {
map.put(((Long)object[0]),object[1]);
}
}
return map;
}
}

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用接口,您可以獲得更簡單的代碼。無需創(chuàng)建和手動(dòng)調(diào)用構(gòu)造函數(shù)
第1步:使用必填字段聲明界面:
public interface SurveyAnswerStatistics {
String getAnswer();
Long getCnt();
}
步驟2:在接口中選擇與getter名稱相同的列,并從存儲(chǔ)庫方法返回intefrace:
public interface SurveyRepository extends CrudRepository<Survey, Long> {
@Query("select v.answer as answer, count(v) as cnt " +
"from Survey v " +
"group by v.answer")
List<SurveyAnswerStatistics> findSurveyCount();
}
添加回答
舉報(bào)