@Entity
public class Employee {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "servedBy")
private List<Orders> orders;
}
mappedBy
здесь означает, что servedBy
в Orders
используются для поддержания взаимосвязи между Employee
и Order
, что означает, что Hibernate обновит внешний ключ на основе этого поля.Вы должны установить значение servedBy
в Order
, чтобы указать отношение, а не использовать orders
в Employee
:
public void orderServed(Long employeeId, Long orderId) {
Orders order = orderRepository.findOne(orderId);
Employee employee = employeeRepository.findOne(employeeId);
//Set the forign key
order.setServedBy(employee);
employeeRepository.save(employee);
}
Кстати, @OneToMany
уже позволяет настраивать поведение каскада,Нет необходимости использовать hibernate 's @Cascade
:
@Entity
public class Employee {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "servedBy" , cascade={CascadeType.ALL})
private List<Orders> orders;
}