Я новичок в Spring и JPA, и я следовал некоторым учебникам, таким как this
Я применил ту же идею к своему контексту приложения, так что у меня есть Food and Ingredientкак класс модели.
Я создал FoodRepository, расширив JpaRepository, и создал FoodController, который отлично работает, когда я добавляю еду без ингредиентов, и класс выглядит так:
@RestController
@RequestMapping("/api")
public class FoodController {
@Autowired
FoodRepository foodRepository;
@GetMapping("/food")
public List<Food> getAllFoods() {
return foodRepository.findAll();
}
@PostMapping("/food")
public Food createFood(@Valid @RequestBody Food food) {
return foodRepository.save(food);
}
@GetMapping("/food/{id}")
public Food getFoodById(@PathVariable(value = "id") Long foodId) {
return foodRepository.findById(foodId)
.orElseThrow(() -> new CRSException("Could not find the food with id: " + foodId));
}
@PutMapping("/food/{id}")
public Food updateFood(@PathVariable(value = "id") Long foodId, @Valid @RequestBody Food foodDetails) {
Food food = foodRepository.findById(foodId)
.orElseThrow(() -> new CRSException("Could not find the food with id: + foodId)"));
food.updateFood(foodDetails);
Food updatedFood = foodRepository.save(food);
return updatedFood;
}
@DeleteMapping("/food/{id}")
public ResponseEntity<?> deleteFood(@PathVariable(value = "id") Long foodId) {
Food food = foodRepository.findById(foodId)
.orElseThrow(() -> new CRSException("Could not find the food with id: + foodId)"));
foodRepository.delete(food);
return ResponseEntity.ok().build();
}
}
I basicalyЯ хочу сохранить еду со списком ингредиентов, но я не знаю, как изменить сигнатуру createFood, чтобы можно было использовать параметр списка ингредиентов в методе и сохранить еду с этими ингредиентами.
Так как я новичок в весенней загрузке, jpa и hibernate;Я не знаю, какую терминологию использовать при поиске.Как этого добиться?
Любая помощь приветствуется
Заранее спасибо