Не обновляются сущности @ManyToMany
Есть 2 сущности:
Order.java
@Entity
@Table(name = "orders")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private int id;
@Column(name = "price")
private int price;
@ManyToMany(mappedBy = "orders",
fetch = FetchType.LAZY,
cascade= CascadeType.ALL
)
private Set<Master> masters;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "garage_id")
private Garage garage;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "client_id")
private Client client;
...........
}
и
Master.java
Entity
@Table(name = "masters")
public class Master extends Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private int id;
@ManyToOne(targetEntity = Order.class,
fetch = FetchType.LAZY
)
@JoinColumn(name = "current_order_id")
private Order currentOrder;
@ManyToMany(mappedBy = "masters",
fetch = FetchType.LAZY
)
private Set<Garage> garage;
@ManyToMany(fetch = FetchType.LAZY,
cascade = CascadeType.ALL)
@JoinTable(name = "orders_and_masters",
joinColumns = @JoinColumn(name = "master_id"),
inverseJoinColumns = @JoinColumn(name = "order_id")
)
private Set<Order> orders = new HashSet<>();
.................
}
Если сделать update заказа, то сет с мастерами не изменится.
Также, если сделать update мастера, то currentOrder тоже не изменится.
Ошибка, я думаю, в связях. Ибо передаю правильно и в дебаге прямо перед выполнением update, у сущности все поля правильно изменились, даже сет с мастерами у заказа.
Остальные поля, то есть Garage, Client обновятся и с ними всё хорошо.