Toplink客户端会话

时间:2009-12-07 04:10:51

标签: session client toplink

有没有办法可以从另一个客户端会话访问一个客户端会话的对象?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我不确定你想要实现的目标但是,根据TopLink开发人员指南中的Server and Client Sessions,你不应该在多个线程上共享客户端会话:

  

虽然客户端会话是线程安全的,但不要使用它们来跨多个线程进行写入。来自同一客户端会话的多线程写入操作可能导致错误和数据丢失。有关更多信息,请参阅"Concurrency"

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