我遇到一个问题,我得到三个对象而不是一个对象本身。 (您可以在下面看到我的架构和输出结果)。我需要做的就是返回对象映射器的列表,该列表可以转换数组中的集合。在我的控制器中,这是导致“ public @ResponseBody List”的原因,请帮助我像我的架构一样打印它。谢谢您的帮助..!
控制器:
@RestController
public class AutoCompleteController {
private AutoCompleteService autoCompleteService;
private EntityManager em;
public AutoCompleteController(AutoCompleteService autoCompleteService, EntityManager em){
this.autoCompleteService = autoCompleteService;
this.em = em;
}
@RequestMapping(value = "jobs", method = RequestMethod.GET)
public @ResponseBody List<AutoComplete> getSalary(@RequestParam(value = "autocomplete") String autocompleteValue) {
return autoCompleteService.retrieveSalary(autocompleteValue);
}
public void getAllSalaries(HttpServletResponse res) {
Stream<AutoComplete> stream = autoCompleteService.retrieveAllSalaries();
DataStreamUtility.streamObjects(stream, res, em);
}
@RequestMapping(value = "/jobs")
public @ResponseBody List < AutoComplete > getSalary(@RequestParam(value = "autocomplete", defaultValue = "1400") String autocompleteValue) {
return autoCompleteService.retrieveSalary(autocompleteValue);
}
public void getAllSalaries(HttpServletResponse res) {
Stream < AutoComplete > stream = autoCompleteService.retrieveAllSalaries();
DataStreamUtility.streamObjects(stream, res, em);
}
}
答案 0 :(得分:1)
代替列表返回单个对象
public @ResponseBody AutoComplete getSalary();
答案 1 :(得分:1)
如果我正确理解了您的意图,那么这里的问题是,您正在检索仅需要单个实体的实体列表。
autocompleteRepository.findByJobClassCdStartsWith(jobClassCd);
简而言之:“神奇”的findByXXX方法返回列表或单个实体。您应该使用findOneByXXXX进行澄清。
检查此答案以获取更多信息,我认为解释得很清楚: Difference between findBy and findOneBy in Spring data JPA
答案 2 :(得分:0)
在您的评论之一中,您说my rateType it just only prints "annual" ... the other hourly and weekly rate types does not return
。您是否有机会创建了3个具有相同ID但不同rateType的对象?在我看来,您需要将每个费率都设为一个数组。
public String[] rateAnnual;
public String[] rateBiweekly;
public String[] Hourly;