0

有什么方法可以从另一个客户端会话访问一个客户端会话的对象?

4

2 回答 2

1

除非您已将实体隔离到客户端会话(ClassDescriptor.setIsIsolated),否则 ClientSession 实际上并不包含任何实体实例。因此,除非您禁用缓存,否则所有针对 ClientSession 的查询都将返回相同的实体实例。

如果您有隔离实体或实际使用 UnitOfWork,那么您必须从持有的 UnitOfWork/IsolatedClientSession 中获取值。不建议使用多个线程同时访问 UnitOfWork 或 ClientSession。

于 2010-04-26T12:32:02.370 回答
0

我不确定你想要实现什么,但根据TopLink 开发人员指南中的服务器和客户端会话,你不应该跨多个线程共享客户端会话:

尽管客户端会话是线程安全的,但不要使用它们跨多个线程进行写入。来自同一客户端会话的多线程写入操作可能会导致错误和数据丢失。有关详细信息,请参阅“并发”

你能澄清为什么你需要这个吗?

于 2010-04-25T20:51:45.887 回答