Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用RequestFactory&;删除OneDomain中的实体;JPA_Java_Gwt_Jpa_Requestfactory - Fatal编程技术网

Java 使用RequestFactory&;删除OneDomain中的实体;JPA

Java 使用RequestFactory&;删除OneDomain中的实体;JPA,java,gwt,jpa,requestfactory,Java,Gwt,Jpa,Requestfactory,我想知道使用RequestFactory从GWT中的一对多关系中删除子项的正确方法是什么 我的GWT应用程序有一个名为产品的实体,该产品与专家有一对多关系: @Entity public class Product { ... OneToMany(mappedBy="product", orphanRemoval=true, cascade={CascadeType.DETACH,CascadeType.MERGE,CascadeType.PERSI

我想知道使用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;
    ...
}
@实体
公共类产品{
... 
OneToMany(mappedBy=“product”,或=true,
cascade={CascadeType.DETACH,CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},fetch=FetchType.EAGER)
Set experts=new HashSet();
...
}
@实体(名称=“专家”)
公开课专家{
...
@多通(可选=假)
产品;
...
}
我有一个用户界面,您可以在其中更改产品的某些值,还可以在其中添加或删除专家。添加专家进展顺利,但如何删除专家?在客户端和服务器端我必须做什么管理


我已经打开了一个productRequest。我也回答了您的JPA问题

根据我过去的经验,在Hibernate中删除父子双向关系中的子对象可能非常棘手

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

  • 更容易的映射
  • 更简单的编码
  • 可管理的行为

  • 您可以在稍后的阶段返回并实现缓存或即时抓取。大多数情况下,它们都是不必要的预成熟优化。

    看起来这个问题与JPA更为相关,所以我添加了另一个问题:我终于设法让一切都正常工作了,但正如你所说,这可能非常棘手,看起来清晰、简单,但在实践中可能很难。我确信在下一个项目中,我会更仔细地选择我的关系,因为实施比预期的更困难(或限制)。