Postman을 통해 새 엔터티를 게시 할 때 모든 것이 잘 작동하며 이에 대한 답을 얻습니다.
{
"id": 3,
"ingredients": [
"Eggs",
"Oil"
]
}
하지만 데이터베이스에서 기존 엔터티를 가져 오려고하면 List <String> 성분이 "null"로 반환됩니다.
[
{
"id": 3,
"ingredients": null
}
]
내 모델은 다음과 같습니다.
package com.petie.weeklyrecipesschedule.model;
import javax.persistence.*;
import java.util.List;
@Entity
public class Recipe {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
@Embedded
private List<String> ingredients;
protected Recipe() {}
public Recipe(String name, List<String> ingredients) {
this.name = name;
this.ingredients = ingredients;
}
//Getters and setters
//toString()
}
내 저장소
package com.petie.weeklyrecipesschedule.repository;
import com.petie.weeklyrecipesschedule.model.Recipe;
import org.springframework.data.jpa.repository.JpaRepository;
public interface RecipeRepository extends JpaRepository<Recipe, Long> {
}
그리고 내 컨트롤러
package com.petie.weeklyrecipesschedule.controller;
import com.petie.weeklyrecipesschedule.model.Recipe;
import com.petie.weeklyrecipesschedule.repository.RecipeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/recipes")
public class RecipeController {
@Autowired
private RecipeRepository recipeRepository;
public RecipeController(RecipeRepository recipeRepository) {
this.recipeRepository = recipeRepository;
}
@GetMapping("/all")
List<Recipe> getAll() {
return recipeRepository.findAll();
}
@PostMapping("/post")
Recipe newRecipe(@RequestBody Recipe recipe) {
return recipeRepository.save(recipe);
}
}
종속성에 관한 한 저는 Spring Web, Spring Jpa 및 H2 데이터베이스를 사용하고 있습니다.