我想知道使用RequestFactory从GWT中的一对多关系中删除孩子的正确方法是什么。

我的GWT应用程序带有一个名为Product的实体,并且该产品与Expert具有一对多关系:

@Entity
public class Product {
    ...
    OneToMany(mappedBy="product", orphanRemoval=true,
              cascade={CascadeType.DETACH,CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},fetch=FetchType.EAGER)
    Set<Expert> experts = new HashSet<Expert>();
    ...
}

@Entity(name = "EXPERT")
public class Expert {
    ...
    @ManyToOne(optional=false)
    Product product;
    ...
}


我有一个用户界面,您可以在其中更改“产品”的某些值,还有一个可以添加或删除专家的窗口。添加专家很顺利,但是如何删除专家?在客户端和服务器端我必须做什么管理?

我已经有一个打开的productRequest正在进行。

最佳答案

我也回答了您的JPA问题。

根据我过去的经验,在Hibernate中移除具有亲子双向关系的孩子可能非常棘手。

我通常要做的是改用单向映射,即产品不包含专家组。但是您可以实现一个getter来使用Hibernate调用来吸引所有专家。优点是:


更容易映射
更容易编码
可控的行为


您随时可以返回并在以后实现缓存或渴望获取。而且在大多数情况下,它们是不必要的过早优化。

09-11 18:08
查看更多