2
を削除し、私は2 entites持っている:製品は、複数のアップグレードのセットが含まれるように休止状態 - リンクエンティティ
@Entity
@Table(name="product")
public class Product {
private Long id;
private Set<Upgrade> upgrade;
@Id
@Column(name="id")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToMany(mappedBy = "products",
targetEntity = Upgrade.class,
cascade = CascadeType.REFRESH,
fetch = FetchType.EAGER)
public Set<Upgrade> getUpgrade() {
return upgrade;
}
public void setUpgrade(Set<Upgrade> upgrade) {
this.upgrade = upgrade;
}
}
と
@Entity
@Table(name="upgrade")
public class Upgrade {
private Long id;
private Set<Product> products;
@Id
@Column(name="id")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToMany(targetEntity = Product.class, cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
@JoinTable(name = "upgrade_product",
joinColumns = @JoinColumn(name = "upgrade_id"),
inverseJoinColumns = @JoinColumn(name="product_id"))
public Set<Product> getProducts() {
return products;
}
public void setProducts(Set<Product> products) {
this.products = products;
}
}
私のデータは、これらを作成します。
すなわちP1 {U1、U2、U3、U4} P2 {U1、U3、U5、U7}
Iアップグレードを削除する場合、すべてが正常です。これは製品から取り除かれたばかりです。 ただし、製品を削除すると、リンクされたすべてのアップグレードを削除しようとします。
どのようにして製品を削除し、アップグレードをそのままにすることができますか。
マージは、製品がまだ永続コンテキストにない場合にのみ必要です。 – rit
そこに不一致はありません。 –
これは、なぜそれが必要なのか、そしてアップグレードを削除するのはなぜではないのかを説明していません。 –