有没有办法可以从另一个客户端会话访问一个客户端会话的对象?
答案 0 :(得分:1)
除非您已将实体隔离到客户端会话(ClassDescriptor.setIsIsolated),否则ClientSession实际上并不包含任何实体实例。因此,除非您禁用缓存,否则针对ClientSession的所有查询都将返回相同的实体实例。
如果您有孤立的实体或实际使用的是UnitOfWork,那么您必须从持有UnitOfWork / IsolatedClientSession获取值。不建议与多个线程同时访问UnitOfWork或ClientSession。
答案 1 :(得分:0)
我不确定你想要实现的目标但是,根据TopLink开发人员指南中的Server and Client Sessions,你不应该在多个线程上共享客户端会话:
虽然客户端会话是线程安全的,但不要使用它们来跨多个线程进行写入。来自同一客户端会话的多线程写入操作可能导致错误和数据丢失。有关更多信息,请参阅"Concurrency"。
你能澄清为什么需要这个吗?