В моем приложении установлены довольно простые отношения JPA @ManyToMany
. A Product
является частью одного или нескольких OrderSystem
s. Каждый OrderSystem
может иметь много Product
с. Это типичные отношения «многие ко многим».
Проблема, с которой я борюсь, заключается в следующем: если я использую orderSystems.remove()
для удаления ссылки с Product
на OrderSystem
, запись, кажется, будет удалена (в этом сеансе). Однако эта запись не удаляется из таблицы перекрестных ссылок при сбросе, и когда я перезагружаю Product
, она имеет предыдущий набор OrderSystem
s.
У меня есть следующий код:
@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;
}
}
Может кто-нибудь указать мне на то, что мне здесь не хватает?