私のアプリケーションには、非常に単純な JPA@ManyToMany
関係が設定されています。AProduct
は 1 つ以上OrderSystem
の s の一部です。それぞれOrderSystem
に多くProduct
の があります。これは典型的な多対多の関係です。
私が戦っている問題は次のとおりです。からへorderSystems.remove()
の参照を削除するために使用すると、エントリが (そのセッション内で) 削除されたように見えます。ただし、エントリはフラッシュ時に相互参照テーブルから削除されず、再ロードすると以前のs のセットが含まれています。Product
OrderSystem
Product
OrderSystem
次のコードがあります。
@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;
}
}
ここで欠けているものを誰かに教えてもらえますか?