Ich habe eine ziemlich einfache JPA @ManyToMany
Beziehung, die in meiner Anwendung eingerichtet wurde. A Product
ist ein Teil von einem oder mehreren OrderSystem
s. Jede OrderSystem
können viele Product
s. Es handelt sich um eine typische Many-to-many-Beziehung.
Das Problem, mit dem ich zu kämpfen habe, ist folgendes: Wenn ich orderSystems.remove()
um einen Verweis aus einer Product
zu einer OrderSystem
wird der Eintrag (innerhalb dieser Sitzung) entfernt. Allerdings wird der Eintrag beim Flush nicht aus der Querverweistabelle entfernt, und wenn ich die Product
hat es die vorherige Reihe von OrderSystem
s.
Ich habe den folgenden Code:
@Entity
@Table(name = "p_product_versions")
@Validation
public class Product {
private List<OrderSystem> orderSystems;
@ManyToMany
@JoinTable(name = "p_order_systems_has_product_versions",
joinColumns =
@JoinColumn(name = "p_product_versions_prod_version_id"),
inverseJoinColumns =
@JoinColumn(name = "p_order_systems_system_id"))
public List<OrderSystem> getOrderSystems() {
return orderSystems;
}
}
@Entity
@Table(name = "p_order_systems")
@Validation
public class OrderSystem {
private List<Product> products;
@ManyToMany (mappedBy = "orderSystems")
public List<Product> getProducts() {
return products;
}
}
Kann mir jemand sagen, was ich hier übersehe?