我正在尝试编写自己的应用。它应该为添加的食品提供参数,我已经做过这些,进一步的目的是对所有属性形式添加的产品求和,与透析平衡进行比较,等等。
我对将产品连接到餐点的概念有疑问。我想知道是否可以用特定数量的(可选)参数替代功能,否则是否会限制功能。这是一个临时解决方案,但是我不喜欢它,所以我暂时不开发它。 您有更好的概念吗?
@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;
}
答案 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);