Концепция добавления множества (неопределенных числовых) объектов в базу данных через сервис Rest - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь написать собственное приложение. Это должно обеспечить добавление продуктов питания с параметрами, что я уже сделал, дальнейшая цель состоит в том, чтобы суммировать все свойства из добавленных продуктов, сравнить с балансом набора и т. Д.

У меня проблема с концепцией подключения продуктов к еде. Мне интересно, если есть какая-то симпатичная альтернатива функции с определенным количеством (необязательных) параметров, то есть определенное ограничение функциональности. Вот временное решение, но мне оно не нравится, поэтому я не буду его сейчас развивать. У тебя есть более приятная концепция?

@RequestMapping("/add")
public Integer adding(@RequestParam("i") Long index,
                      @RequestParam("i2") Long index2,
                      @RequestParam(value="i3", required = false, defaultValue = "0") Long index3,
                      @RequestParam(value="i4", required = false, defaultValue = "0") Long index4,
                      @RequestParam(value="i5", required = false, defaultValue = "0") Long index5,
                      @RequestParam(value="i6", required = false, defaultValue = "0") Long index6
){
    Integer sum = null;


   Integer i1 = productManager.findById(index).get().getCalories();
   Products second = productManager.findById(index2).get();
   Integer i2 = second.getCalories();

   Integer i3,a,b,c;
   if (index3==0){
       i3=0;
   } else {
       Products thrid = productManager.findById(index3).get();
       i3 = thrid.getCalories();
   }
    sum= i1+i2+i3;
    return sum;
}

1 Ответ

1 голос
/ 25 июня 2019

Вы можете использовать список в качестве параметра запроса. @RequestMapping("/add") public Integer adding(@RequestParam("index") List<Long> indicies){...}

URL будет следующим: http://yourhost:port/add?index=1&index=2&index=3 Я предлагаю использовать лучшее имя для метода и URL-адрес, чем add. Может быть sumCalories или что-то в этом роде.

Если вы используете RDBMS для сохранения своих продуктов (не могли бы вы дать мне более подробную информацию, пожалуйста?), Вы можете написать запрос для суммирования запрашиваемого значения:
@Query("select sum(p.calorie) from Products p where p.id in :ids") Long sumCaloriesByIds(@Param("ids") List<Long> ids);

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