我有JPA(EclipseLink)的問題。 我無法刪除關聯表。情況是這樣的:JPA關聯表不可刪除
- 產品1:N至ProductResource
- 資源1:N至ProductResource
我第一次ProductResource的產品和資源屬性。如果我然後嘗試刪除ProductResource對象,則不會發生任何事情(不會生成sql - 沒有例外)。如果我在ProductResource中註釋掉這兩個OneToMany註釋,我可以刪除該對象。當產品和資源屬性未設置時,我也可以刪除該對象。如果我只註釋了資源上方的註釋,則ProductResource對象在刪除產品對象後會被刪除(cascade = CascadeType.ALL)。我希望有人能給我一個提示。謝謝。
產品資源:
public class ProductResource implements Serializable {
@ManyToOne(fetch=FetchType.EAGER, cascade=CascadeType.MERGE)
private Product product;
@ManyToOne(fetch=FetchType.EAGER, cascade=CascadeType.MERGE)
private Resource resource;
產品:
public class Product implements Serializable {
@OneToMany(mappedBy="product", fetch=FetchType.EAGER, cascade=CascadeType.ALL)
private List<ProductResource> productResources = new ArrayList<ProductResource>();
資源:
public class Resource implements Serializable {
@OneToMany(mappedBy="resource", fetch=FetchType.EAGER, cascade=CascadeType.ALL)
private List<ProductResource> productResources = new ArrayList<ProductResource>();
問候馬塞爾
非常感謝您的詳細解釋。起初JPA看起來很容易使用。魔鬼在細節中。非常感謝像你這樣的人花時間幫助像我這樣的新手。 問候馬塞爾 – 2010-03-21 12:45:20