【发布时间】:2019-02-23 15:29:45
【问题描述】:
我正在创建一个订单,然后将一名员工分配给该订单。所以我很难在这两者之间建立关系。我的订单表没有更新employee_id 列
我的员工班级
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "servedBy")
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
private List<Orders> orders;
...
}
我的订单类
@Entity
public class Orders {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Embedded
private OrderStatus orderStatus;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "employee_id")
private Employee servedBy;
...
}
我要在哪里映射这两个代码
public void orderServed(Long employeeId, Long orderId) {
Orders order = orderRepository.findOne(orderId);
Employee employee = employeeRepository.findOne(employeeId);
List<Orders> orders = employee.getOrders();
orders.add(order);
employee.setOrders(orders);
employeeRepository.save(employee);
}
【问题讨论】:
-
如果将
SAVE_UPDATE更改为ALL会发生什么? -
保存
Employee和Orders的代码是什么? -
@Andronicus 我确实更改为 ALL,但什么也没发生。
-
两件事:你确定,你要添加的订单不在吗?您是否覆盖了
equals和hashCode?
标签: java mysql database hibernate jpa