我在嵌入式Jetty服务器中使用Hibernate,我希望能够将我的数据处理与一些多线程并行化,并且仍然将它们全部放在同一个事务中。由于Sessions不是线程安全的,这意味着我需要一种方法来将多个会话连接到同一个事务,这意味着我需要切换到"线程"会话环境我一直在使用。
根据我对文档的理解,这意味着我需要切换到JTA会话上下文,但是我无法让它工作。到目前为止,我的研究似乎表明它需要在服务器中使用Hibernate外部的东西来提供事务管理,并且Jetty没有内置这样的东西,所以我必须引入一些额外的库才能完成它。我一直在追求的顶级候选人通常看起来像是大包装,也会做各种其他的东西,当我只是在寻找一个特定的功能时,这似乎是浪费,混乱和分散注意力。
那么,什么是最小的破坏性设置和配置更改,允许getCurrentSession()返回附加到不同线程中的同一事务的Sessions?
虽然我在这里,但我知道在一个线程中获取对象并在另一个线程中更改它们并不安全,但是如何在另一个线程中读取它们的属性,例如调用toString()或者副作用免费吸气剂?