Hibernate 持久化多个对象休眠:NOTNULL属性引用一个临时值

Hibernate 持久化多个对象休眠:NOTNULL属性引用一个临时值,hibernate,transient,Hibernate,Transient,我在尝试将某些对象保存到数据库时遇到困难。从前端,我发送了一个订单obj,这是一个带有客户obj的数组,后跟一个船obj数组 当我尝试只执行orderepo.save(order)时,我得到“notnull属性引用一个临时值”,因为订单需要首先保存客户,而订单需要首先保存 我试过: customerRepo.save(orderObj.getCustomer()); Order order = orderRepo.save(orderObj);

我在尝试将某些对象保存到数据库时遇到困难。从前端,我发送了一个订单obj,这是一个带有客户obj的数组,后跟一个船obj数组

当我尝试只执行orderepo.save(order)时,我得到“notnull属性引用一个临时值”,因为订单需要首先保存客户,而订单需要首先保存

我试过:

            customerRepo.save(orderObj.getCustomer());

            Order order = orderRepo.save(orderObj);

            List<Boat> list = new ArrayList<>();
            for (Boat boat : orderObj.getBoats()) {
                boat.setOrder(order);
                list.add(boat);
            }
            for(Boat boat : list){
                boatRepo.save(boat);
            }

    @Id
    @GeneratedValue
    @Column(name = "order_id")
    private int order_id;

    @OneToOne(fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "customer_id", nullable = false)
    private Customer customer;

    @OneToMany(mappedBy = "order", cascade = CascadeType.ALL)
    private List<Boat> boats;
@Entity
@Table(name = "boat")
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Boat {

    @Id
    @Column(name = "id")
    private String id;

    //  more fields

    @ManyToOne(cascade=CascadeType.ALL)
    @JoinColumn(name = "order_id", referencedColumnName = "order_id")
    private Order order;

}