java – 是否可以并行初始化多个惰性集合?

我正在维护现有的代码,我找到了以下代码来初始化一些惰性集合.

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是负责这些列表的人口.

您可以使用查询提示或实体图来在对象检索期间强制急切加载集合.

点赞