три объекта как один? - PullRequest
1 голос
/ 06 июля 2019

Пришла проблема, когда я возвращаю три объекта json. Во что бы то ни стало, все, что я хочу сделать, это вернуть как один объект JSON. Похоже на мой результат ниже. Итак, я пытаюсь показать свой контроллер - я верю, что это в моем контроллере, который возвращает 3 объекта вместо одного. Спасибо за помощь.

Вот мой код:

Я пытался сделать это:

@RequestMapping(value = "all", method = RequestMethod.GET)
    public @ResponseBody
    MyAutoComplete getMoney(@RequestParam(value = "myautocomplete") String myautocompleteValue) {

    List<MyAutoComplete> list = myautoCompleteService.gettingMoney(myautocompleteValue);
    return merge(list);

}


MyAutoComplete merge(List<MyAutoComplete> list){
    MyAutoComplete accountacy = list.get(0);
    for (int i = 1; i < list.size(); i++) {
        MyAutoComplete myautoComplete = list.get(i);
        if (myautoComplete.getTimeAnnual() != null) {
            accountacy.setTimeAnnual((autoComplete.getTimeAnnual(());
        }
        if (autoComplete.getTimeBiweekly() != null) {
            accountacy.setTimeBiweekly(autoComplete.getTimeBiweekly());
        }
        if (autoComplete.getTimeHourly() != null) {
            accountacy.setTimeHourly(autoComplete.getTimeHourly());
        }

    }
    return accountacy;
}

Ответы [ 2 ]

1 голос
/ 06 июля 2019

Если вы не можете изменить запрос на стороне хранилища, вы можете объединить объекты в списке в один объект в контроллере

public @ResponseBody
LIst<AutoComplete> getSalary(@RequestParam(value = "autocomplete") String autocompleteValue) {

  List<AutoComplete> list = autoCompleteService.retrieveSalary(autocompleteValue);
  return Arrays.asList(merge(list));

}


AutoComplete merge(List<AutoComplete> list){
    AutoComplete acc = list.get(0);
    for (int i = 1; i < list.size(); i++) {
        AutoComplete autoComplete = list.get(i);
        if (autoComplete.getAnnual() != null) {
            acc.setAnnual(autoComplete.getAnnual());
        }
        if (autoComplete.getBiweekly() != null) {
            acc.setBiweekly(autoComplete.getBiweekly());
        }
        if (autoComplete.getHourly() != null) {
            acc.setHourly(autoComplete.getHourly());
        }

    }
    return acc;
}
0 голосов
/ 06 июля 2019

Я просто вижу ваш код в github, но код ключа не существует. Теперь я скажу то, что думаю.Проблема может возникнуть в этом коде.

  @Repository
public interface AutoCompleteRepository extends CrudRepository<AutoComplete, String> {


  @Query("select e from AutoComplete e where e.jobClassCd like %:jobClassCd%")
  public Stream<AutoComplete> streamAll();


  List<AutoComplete> findByJobClassCdStartsWith(String jobClassCd);

}

В методе fingByJobClassCdStartsWith (String jobClassCd), я думаю, что при запросе из базы данных вы получаете три записи и можете объединить их в один объект вручную.

Или вы можете разместить здесь невидимый код, отредактировав свой вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...