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