我正在维护现有的代码,我找到了以下代码来初始化一些惰性集合.
user.getListOne().size()
user.getListTwo().size()
user.getListThree().size()
它工作得很好,但问题是顺序的,我想我可以将它并行化.
我尝试这样做创建我自己的线程,但我收到一个警告,所以我想这是不可能用我自己的线程这样做:
ERROR org.hibernate.AssertionFailure – HHH000099: an assertion failure
occured (this may indicate a bug in Hibernate, but is more likely due
to unsafe use of the session) org.hibernate.AssertionFailure:
possible non-threadsafe access to the session
有没有办法使用JPA / Hibernate并行初始化集合?
最佳答案 你不能. EntityManager不是线程安全的,因此在“并行”初始化期间不应该从多个线程访问它,并且EM是负责这些列表的人口.
您可以使用查询提示或实体图来在对象检索期间强制急切加载集合.