GWT RequestFactory Locator 方法是否应该期望附加或分离传入的 JPA 实体?

Should a GWT RequestFactory Locator method expect a passed-in JPA entity to be attached or detached?

现在我必须在我的服务方法结束时调用 JPA merge() 来保存更改。我这样做是因为我们的 servlet 在 Locator.find() 运行之前不启动事务。他们稍后在服务方法中启动它们。

我知道 RequestFactory 使用我的 Locator find() 并根据客户端发送到服务器的内容更新对象,所以我只是想知道该对象是否应该是附加对象并因此允许 JPA 处理更改 "naturally" 而不是显式调用 merge()。

或者这只是视情况而定?

我不太了解 JPA,但我确认您 应该 将您的事务范围限定在您的服务方法中:RequestContext 是一批请求,可以每个成功或失败 独立 ,将它们全部放在一个事务中将违反该原则。在某些情况下,您的 Localor#find 可以被调用,更改应用于实体,但实体永远不会传递给任何服务方法:在这种情况下,您不希望保留更改。