stableId有多稳定?

时间:2011-07-01 06:14:28

标签: gwt requestfactory

EntityProxy.stableId()的JavaDoc说:

"An id returned by a proxy newly created by RequestContext.create 
Object.equals(Object) those returned later by proxies to the persisted object."

这是否意味着稳定的id将在不同的请求上下文中对该对象有效?跨越不同的请求工厂实例?我想我问的是稳定id的范围是什么?

1 个答案:

答案 0 :(得分:3)

EntityProxyId对象具有全局范围,适合作为Map密钥或Set的成员长期使用。可以在EntityProxyId的不同实例和类型之间使用RequestFactory个对象(假设代理类型可以从相关的RequestFactory访问)。 RequestFactory.getHistoryToken()getProxyId方法可以创建适合客户端持久性的EntityProxyId字符串表示。

EntityProxyId的全局范围的一个例外是尚未在服务器上保留的新创建的EntityProxy的id。 “短暂”id仅可用于从中派生新创建的代理对象的RequestFactory。一旦将代理发送到服务器并且服务器提供了非空id,则短暂id将升级为持久ID,并且与任何其他持久ID无法区分。已升级的EntityProxyId的对象标识不会更改,因此可以将短暂的ID添加到MapSet并稍后检索。