由于它与步骤和成分具有一对多的关系,如何编写DELETE方法以删除存储库中的“配方”?

时间:2018-11-12 04:17:54

标签: spring rest jpa httprequest

这是有效的 POST 方法。我想问问如何编写 DELETE 方法以根据Reicpe ID删除存储库中的配方吗?谁能告诉我该怎么做?

*****POST METHOD*****

public void addRecipe(RecipeDTO recipedto)
{
    Category categoryTitle = categoryRepository.findByCategoryTitle(recipedto.getCategoryTitle());
    Recipe recipe = new Recipe();

    recipe.setRID(recipedto.getrID());
    recipe.setRecipeTitle(recipedto.getRecipeTitle());
    recipe.setDescription(recipedto.getDescription());
    recipe.setCookTime(recipedto.getCookTime());

    List categoryList = new ArrayList<>();
    categoryList.add(categoryTitle);

    recipe.setCategories(categoryList);

    Recipe savedRecipe = recipeRepository.save(recipe);


    /*I map the data in ingredientDTO and setpDTO to actual model */

    List ingredientList = new ArrayList<>();
    for(IngredientDTO ingredientdto : recipedto.getIngredients())
    {   
        Ingredient ingredient = new Ingredient();

        ingredient.setIID(ingredientdto.getiID());
        ingredient.setIngredientName(ingredientdto.getIngredientName());
        ingredient.setRecipe(savedRecipe);

        ingredientList.add(ingredient);

    }

    List stepList = new ArrayList<>();
    for(StepDTO stepdto : recipedto.getSteps())
    {   
        Step step = new Step();

        step.setSID(stepdto.getsID());
        step.setStepDescription(stepdto.getStepDescription());
        step.setStepNumber(stepdto.getStepNumber());
        step.setRecipe(savedRecipe);


        stepList.add(step);

    }

    ingredientRepository.save(ingredientList);
    stepRepository.save(stepList);
}

我尝试这样,但是即使在Postman中显示状态200也无法正常工作。数据库中的配方,步骤和配料未删除。谁能教我?我因这个问题停留了3天。

 public void deleteRecipe(Recipe recipe)
{
    Recipe recipe2 = recipeRepository.findByrID(recipe.getRID());
    if(recipe2!= null) {
        recipeRepository.delete(recipe2);
    }
}

0 个答案:

没有答案