使用RequestFactory&删除OneToMany中的实体JPA

时间:2011-10-27 20:32:35

标签: java gwt jpa requestfactory

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

我的GWT应用程序,其实体名为产品,该产品与专家具有一对多的关系:

@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;
    ...
}

我有一个用户界面,您可以在其中更改Product的某些值,还可以添加或删除专家的窗口。添加专家很顺利,但如何删除专家呢?我必须在客户端和服务器端执行哪些管理?

我已经打开了productRequest。

1 个答案:

答案 0 :(得分:0)

我也回答了你的JPA问题。

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

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

  1. 更容易制作地图
  2. 更容易编码
  3. 可管理的behviour
  4. 您可以随时返回并在稍后阶段实施缓存或急切提取。而且大多数时候它们都是不必要的预成熟优化。

相关问题