我想知道使用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调用来吸引所有专家。优点是:
更容易映射
更容易编码
可控的行为
您随时可以返回并在以后实现缓存或渴望获取。而且在大多数情况下,它们是不必要的过早优化。