I send a request with a body:
{
"name" : "French fries",
"ingredients" : [
{
"id" : 1
}
]
}
And receive:
{
"id" : 1,
"name" : "French fries",
"ingredients" : [
{
"id" : 1,
"name" : null
}
]
}
The id references an ingredient that already exists:
{
"id" : 1,
"name" : "potato"
}
```.
<br/>As you can see, the name of the ingredient in null.
Here's my model:
```java
@Entity
@Table(name = "dishes")
@Data
public class Dish {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonView(Views.Full.class)
private Long id;
@Column(unique = true)
@JsonView(Views.Partial.class)
private String name;
@ManyToMany(cascade = CascadeType.MERGE)
@JoinTable(
name = "dish_ingredients",
joinColumns = @JoinColumn(name = "dish_id"),
inverseJoinColumns = @JoinColumn(name = "ingredient_id"))
@JsonView(Views.Partial.class)
private List<Ingredient> ingredients = new ArrayList<>();}
@Data
@Table(name = "ingredients")
@Entity
public class Ingredient {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonView({Views.Full.class, Views.Partial.class})
private Long id;
@Column(unique = true)
@JsonView(Views.Public.class)
private String name;
}
Here's what I do in service:
public Dish createDish(Dish dish) {
return dishRepository.saveAndFlush(dish);
}
Controller:
@PostMapping("dishes")
public Dish createDish(@RequestBody @JsonView(Views.Partial.class) Dish dish) {
return itemService.createDish(dish);
}