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的范围是什么?
答案 0 :(得分:3)
EntityProxyId
对象具有全局范围,适合作为Map
密钥或Set
的成员长期使用。可以在EntityProxyId
的不同实例和类型之间使用RequestFactory
个对象(假设代理类型可以从相关的RequestFactory
访问)。 RequestFactory.getHistoryToken()
和getProxyId
方法可以创建适合客户端持久性的EntityProxyId
字符串表示。
EntityProxyId
的全局范围的一个例外是尚未在服务器上保留的新创建的EntityProxy
的id。 “短暂”id仅可用于从中派生新创建的代理对象的RequestFactory
。一旦将代理发送到服务器并且服务器提供了非空id,则短暂id将升级为持久ID,并且与任何其他持久ID无法区分。已升级的EntityProxyId
的对象标识不会更改,因此可以将短暂的ID添加到Map
或Set
并稍后检索。