如何在java中只返回一个实例?

如何在java中只返回一个实例?,java,Java,我来讨论一个问题,我得到的是三个对象,而不是一个对象本身。(您可以在下面看到我的模式和输出结果)。我所需要做的就是返回一个对象映射器列表,该映射器可以在数组中转换集合。在我的控制器中,这是“public@ResponseBody List”的原因。请帮助我将其打印为我的模式。谢谢你的帮助 控制器: @RestController 公共类自动完成控制器{ 专用自动完成服务自动完成服务; 私人实体管理者; 公共自动完成控制器(自动完成服务自动完成服务,实体管理器em){ this.autoCompl

我来讨论一个问题,我得到的是三个对象,而不是一个对象本身。(您可以在下面看到我的模式和输出结果)。我所需要做的就是返回一个对象映射器列表,该映射器可以在数组中转换集合。在我的控制器中,这是“public@ResponseBody List”的原因。请帮助我将其打印为我的模式。谢谢你的帮助

控制器:

@RestController
公共类自动完成控制器{
专用自动完成服务自动完成服务;
私人实体管理者;
公共自动完成控制器(自动完成服务自动完成服务,实体管理器em){
this.autoCompleteService=autoCompleteService;
this.em=em;
}
@RequestMapping(value=“jobs”,method=RequestMethod.GET)
public@ResponseBody List getSalary(@RequestParam(value=“autocomplete”)字符串autocompleteValue){
返回autoCompleteService.retrieveSalary(autocompleteValue);
}
public void GetAllPalaries(HttpServletResponse){
Stream=autoCompleteService.retrieveAllPalaries();
流对象(stream、res、em);
}
@请求映射(value=“/jobs”)
public@ResponseBody ListgetSalary(@RequestParam(value=“AutoComplete”,defaultValue=“1400”)字符串autocompleteValue){
返回autoCompleteService.retrieveSalary(autocompleteValue);
}
public void GetAllPalaries(HttpServletResponse){
StreamStream=autoCompleteService.retrieveAllPalaries();
流对象(stream、res、em);
}
}

代替列表返回单个对象

  public @ResponseBody AutoComplete getSalary();

如果我正确理解了您的意图,这里的问题是您正在检索一个实体列表,其中您只需要一个实体

autocompleteRepository.findByJobClassCdStartsWith(jobClassCd);
简而言之,“神奇的”findByXXX方法返回列表或单个实体;您应该使用findonebyxxx来澄清

请查看此答案以了解更多信息,我认为其解释得非常清楚:

在您的一条评论中,您说的“我的费率类型”只打印“年度”。。。其他每小时和每周费率类型不返回。您是否创建了3个id相同但速率类型不同的对象?在我看来,你需要把每一个速率都做成一个数组

public String[] rateAnnual;
public String[] rateBiweekly;
public String[] Hourly;

我只是那样做了。在我的return语句中,它说
不兼容的类型
这一行:
return autoCompleteService.retrieveSalary(autocompletesvalue)在自动完成控制器中,您必须change@RequestMapping(value=“jobs”,method=RequestMethod.GET)public@ResponseBody AutoComplete getSalary(@RequestParam(value=“AutoComplete”)String autocompleteValue){返回autoCompleteService.retrieveSalary(autocompleteValue);}你能给我看看吗?我有点麻烦。我将
列表getSalary
删除到
@ResponseBody AutoComplete getSalary()并且我得到了
不兼容的类型
。我相信我的回购和服务也需要一些改变吗?我应该这样做吗?在存储库、服务和控制器中用自动完成替换列表。还可以选择将findByXXX替换为findOneByXXX。(我编辑了我的回复以避免混淆)现在它停止工作了。当我输入任何术语时,我没有得到任何数据。有多个“jobClassCd”以传递的参数开头的自动完成行。那你为什么只想找回一个呢?如果不知道您的数据模型,我无法提供进一步的帮助。在我的
自动完成
类中,我在其中初始化我列的对象?是的,我相信是这样。我不完全确定您最初是如何创建Autocomplete类的,但是创建3个对象的想法似乎意味着当我初始化这些对象时,我还需要做什么?请给我一些建议。谢谢,说起来不容易,因为我们看不到完整的画面。根据您之前发布的模式,我认为您只需填写单个对象上的每个数组。在之前的结果中,每个rateType都有一些值,只需将所有三个数据集放入一个具有三个数组的对象中,而不是三个具有一个数组的对象中