通过Rest服务在数据库中添加许多(未指定nuber)对象的概念

时间:2019-06-24 22:05:03

标签: java spring rest

我正在尝试编写自己的应用。它应该为添加的食品提供参数,我已经做过这些,进一步的目的是对所有属性形式添加的产品求和,与透析平衡进行比较,等等。

我对将产品连接到餐点的概念有疑问。我想知道是否可以用特定数量的(可选)参数替代功能,否则是否会限制功能。这是一个临时解决方案,但是我不喜欢它,所以我暂时不开发它。 您有更好的概念吗?

@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 个答案:

答案 0 :(得分:1)

您可以将列表用作查询参数。 @RequestMapping("/add") public Integer adding(@RequestParam("index") List<Long> indicies){...}

URL将为以下内容:http://yourhost:port/add?index=1&index=2&index=3 我建议使用比add更好的名称来命名方法和url参数。也许是sumCalories之类的东西。

如果您使用RDBMS保留产品(请给我更多详细信息吗?),则可以编写查询以求和所需的值:
@Query("select sum(p.calorie) from Products p where p.id in :ids") Long sumCaloriesByIds(@Param("ids") List<Long> ids);