2009-12-07 134 views

回答

1

除非您將實體隔離到客戶端會話(ClassDescriptor.setIsIsolated),否則ClientSession實際上並不包含任何實體實例。因此,除非您禁用了緩存,否則針對ClientSession的所有查詢都將返回相同的實體實例。

如果您有孤立的實體或實際使用UnitOfWork,那麼您將不得不從持有的UnitOfWork/IsolatedClientSession中獲取值。不建議使用多線程同時訪問UnitOfWork或ClientSession。

0

我並不一定要得到你想達到什麼樣的,但是,根據Server and Client Sessions從TopLink的開發人員指南,你不應該翻過多個線程共享客戶端會話:

雖然客戶端會話是線程安全的,不要使用它們跨多個線程寫入。來自同一客戶端會話的多線程寫入操作可能導致錯誤和數據丟失。有關更多信息,請參閱"Concurrency"

你能否說明爲什麼你需要這個?