ManyToMany save error
При сохранении сущности выпадает ошибка "could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement"
package com.learning.flowershop.Entity;
import javax.persistence.*;
import java.time.LocalDate;
import java.util.Set;
@Entity
@Table(name = "orders")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private LocalDate orderCreateDate;
private LocalDate orderCompleteDate;
@ManyToOne(fetch = FetchType.LAZY)
private User user;
@OneToMany
private Set<Flower> flower;
private Integer price;
public Order() {
}
public Order(Long id, LocalDate orderCreateDate, LocalDate orderCompleteDate, User user, Set<Flower> flower) {
this.id = id;
this.orderCreateDate = orderCreateDate;
this.orderCompleteDate = orderCompleteDate;
this.user = user;
this.flower = flower;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public LocalDate getOrderCreateDate() {
return orderCreateDate;
}
public void setOrderCreateDate(LocalDate orderCreateDate) {
this.orderCreateDate = orderCreateDate;
}
public LocalDate getOrderCompleteDate() {
return orderCompleteDate;
}
public void setOrderCompleteDate(LocalDate orderCompleteDate) {
this.orderCompleteDate = orderCompleteDate;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Set<Flower> getFlower() {
return flower;
}
public void setFlower(Set<Flower> flower) {
this.flower = flower;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
}
С этим body работает
{
"orderCreateDate": "2022-06-23",
"orderCompleteDate": "2022-06-23",
"user": {
"id": 1
},
"flower": [{
"id": 1
},
{
"id": 2
}],
"price": 500
}
А с этим body - нет
{
"orderCreateDate": "2022-06-23",
"orderCompleteDate": "2022-06-23",
"user": {
"id": 1
},
"flower": [{
"id": 2
},
{
"id": 2
}],
"price": 500
}
Метод сохранения
@PostMapping("/save")
protected void save(@RequestBody Order order) {
orderService.saveOrder(order);
}