GWT RequestFactory-将更改持久化到子实体

GWT RequestFactory-将更改持久化到子实体,gwt,requestfactory,Gwt,Requestfactory,在我的应用程序中,我的实体都来自一个实体。我希望能够拉取实体,对实体(包括其子实体)进行任何更改,然后持久化该实体并将更改级联—但我的基本测试失败了 这是我的主要实体,我正在提取并修改它的单个实例: @Entity @Component public class Submission extends EntityAbstract implements IsSerializable { ... /** List of statements in this submission. */

在我的应用程序中,我的实体都来自一个实体。我希望能够拉取实体,对实体(包括其子实体)进行任何更改,然后持久化该实体并将更改级联—但我的基本测试失败了

这是我的主要实体,我正在提取并修改它的单个实例:

@Entity
@Component
public class Submission extends EntityAbstract implements IsSerializable
{
  ...   
  /** List of statements in this submission. */
  @OneToMany(cascade=CascadeType.ALL, mappedBy="parentSubmission")
  @NotNull
  @Valid
  private List< Statement > statements = new LinkedList< Statement >( );
  ...
我的测试结果显示:

received: submissionzzz, statement-name  // Called before making modifications [client]
persisting: submission-E, statementzzz   // Called before persisting changes [client]
server: submission-E, statement-name     // Called before persisting changes [server]
success: submission-E, statement-name    // Called after persisting changes [client]
因此,对主实体
Submission
的更改将被保留并正确序列化到服务器。但是对子属性的更改,
语句
,没有序列化到服务器,因此持久性不正确

编辑

我仍然无法解决该问题,因此我使用GWT创建了一个问题:。post包含有关序列化/反序列化对象的信息,并包括请求工厂实例正在发送/接收的实际有效负载


看起来负载和序列化在离开客户端之前是正确的,一旦在服务器端接收到子数据,子数据就会丢失。

我猜您运行的情况与文章末尾的情况类似,我遵循关于接收实体、编辑、应用更改和持久化的指导原则。我在那篇文章中没有看到关于父/子关系或请求工厂对象图的任何具体信息。尽管如此,我还是很感谢你的努力。在文章的最后,有一节,VI)更复杂的陷阱,请看一看……我之前一定读过那一节,但它并没有解决问题。我已尝试使用更新的子对象在父对象上调用“setChild”,并单独编辑子对象,但没有成功。是的,可能关键是删除子对象并重新添加它,作为一种解决方法。。。
received: submissionzzz, statement-name  // Called before making modifications [client]
persisting: submission-E, statementzzz   // Called before persisting changes [client]
server: submission-E, statement-name     // Called before persisting changes [server]
success: submission-E, statement-name    // Called after persisting changes [client]