Métodos de adición de muchos (número no especificado) objetos de base de forma a través del servicio Rest

Con SztyJkmajster polaco:

Estoy tratando de escribir mi propia aplicación. Debe proporcionar la adición de productos alimenticios con parámetros, lo que ya estaba hecho, más objetivo es sumar todos los productos añadidos forma de propiedad, comparar con el balance diario, etc.

Tengo un problema con el concepto de productos de conexión a una comida. Im preguntando si es alguna alternativa bastante a la función con el número específico de parámetros (opcional), bruja es una cierta limitación de la funcionalidad. Aquí es una solución improvisada, pero no me gusta, así que no estoy desarrollando todo por ahora. ¿Hay una mejor manera de hacer esto?

@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;
}
Laval:

lista se puede utilizar como parámetro de consulta.

@RequestMapping("/add")
public Integer adding(@RequestParam("index") List<Long> indicies){...}

La dirección URL será la siguiente: http://yourhost:port/add?index=1&index=2&index=3Es mejor utilizar mejor el nombre de método y parámetro url a continuación add. Tal vez sumCalories, o algo por el estilo.

Si utiliza RDBMS para persistir sus productos (¿me puede dar más detalles por favor?), Se puede escribir una consulta para resumir el valor Requerida:

@Query("select sum(p.calorie) from Products p where p.id in :ids")
Long sumCaloriesByIds(@Param("ids") List<Long> ids);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=235500&siteId=1
Recomendado
Clasificación