我有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