为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕后森 2023-02-16 16:57:51
我遇到了一个问题,我得到了三个对象而不是一个对象本身。(您可以在下面看到我的架构和输出结果)。我需要做的就是返回一个对象映射器列表,它可以将集合转换为数组。在我的控制器中,这是“public @ResponseBody List”的原因,请帮助我让它像我的模式一样打印。感谢您的帮助..!控制器:@RestControllerpublic 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);    }}
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

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

autocompleteRepository.findByJobClassCdStartsWith(jobClassCd);

简而言之:“神奇的”findByXXX 方法返回一个列表或单个实体;您应该改用 findOneByXXXX 来澄清。

查看此答案以获取更多信息,我认为解释得很好: Difference between findBy and findOneBy in Spring data JPA


查看完整回答
反对 回复 2023-02-16
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

而不是列表返回单个对象

  public @ResponseBody AutoComplete getSalary();


查看完整回答
反对 回复 2023-02-16
?
慕少森

TA贡献2019条经验 获得超9个赞

在您的一条评论中,您说my rateType it just only prints "annual" ...  the other hourly and weekly rate types does not return。您是否有机会创建 3 个具有相同 ID 但不同 rateTypes 的对象?在我看来,您需要将费率分别设为一个数组。


public String[] rateAnnual;

public String[] rateBiweekly;

public String[] Hourly;


查看完整回答
反对 回复 2023-02-16
  • 3 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信