Relaciones de Spring JPA
Tengo algunos problemas con las relaciones de Spring JPA.
Tengo dos entidades: Regalo y Dulce. Y quiero que el usuario pueda seleccionar dulces disponibles y agregarlos al regalo.
¿Cómo puedo hacer eso usando spring jpa?
Ya he intentado la relación “uno a muchos” con el regalo como propietario, y obtuve el error “null value in column ‘gift_id violates not-null constraints’ ” al crear y guardar los dulces.
Aquí está mi código:
Clase Regalo:
@Entity
public class Gift implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
private String buyer;
@OneToMany(cascade = CascadeType.REMOVE)
@JoinColumn(name = "GiftId", nullable = true)
private List<candy> candyList = new ArrayList<>();
...
Dulce:
@Entity
public class Candy implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@JsonIgnore
private long id;
private String name;
private String brand;
private double price;
private int weight;
private int sugar;
...
davy.ai
Para solucionar el error “null value in column ‘gift_id violates not-null constraints'” al crear y guardar un Dulce, es necesario establecer la instancia de Regalo a la que se debe agregar el Dulce al lado poseedor de la relación. Puede modificar el código para agregar un Dulce a un Regalo de la siguiente manera:
Asegúrese de obtener o crear la instancia de Regalo antes de agregar una nueva instancia de Dulce a ella. Además, asegúrese de establecer el lado poseedor de la relación llamando a
gift.getCandyList().add(candy)
antes de guardar la instancia de Regalo.