объект ссылается на несохраненный временный экземпляр - сохраните временный экземпляр перед сбросом (JPA-Hibernate) - PullRequest
0 голосов
/ 27 ноября 2018

Это родительский объект:

@Entity
@Table(name="cart")
public class Cart implements Serializable{

    @GeneratedValue(strategy=GenerationType.IDENTITY)   
    @Id
    @Column(name="id")
    private Integer id; 

    @OneToMany(mappedBy="cart", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private List<CartItem> cartItems;

    ...
}

Это дочерний объект:

@Entity
@Table(name="cart_item")
public class CartItem implements Serializable{

    @GeneratedValue(strategy=GenerationType.IDENTITY)   
    @Id
    @Column(name="id")
    private Integer id;     

    @ManyToOne
    @JoinColumn(name="cart_id", nullable=false)
    @JsonIgnore 
    private Cart cart;

    ...
}

С этим изображением базы данных вы можете видеть, что поле CartItem.cart имеетвнешний ключ к таблице корзина .

enter image description here

При сохранении родительского объекта я также хочу сохранить его дочерние элементы.

Дочернему объекту перед сохранением необходимо знать id родителя (вы можете видеть @JoinColumn(name="cart_id") внутри класса CartItem).Я полагаю, что фреймворк решает проблему id .

Я получаю сообщение об ошибке:

      SEVERE: Servlet.service() for servlet [dispatcher] in context with 
path [/webstore] threw exception [Request processing failed; nested 
exception is java.lang.IllegalStateException: 
org.hibernate.TransientObjectException: object references an unsaved 
transient instance - save the transient instance before flushing: 
com.depasmatte.webstore.domain.Cart] with root cause
org.hibernate.TransientObjectException: object references an unsaved 
transient instance - save the transient instance before flushing: 
com.depasmatte.webstore.domain.Cart

Как мне решить такую ​​проблему?

Ребята, ребята

...