我在尝试并行初始化Hibernate中的对象列表(Hibernate.initialize())时遇到问题,初始化一个对象花费的时间太长,所以我认为我可以利用并行性。
我尝试使用parallelStream(),但是执行时间没有改变,而且似乎没有并行执行。
public Collection<MyType> getResults(multipleObjectsToBeInitialized) {
List<MyType> result = multipleObjectsToBeInitialized
.parallelStream()
.filter(myObject -> acceptObject(myObject))
.map(myObject -> {
Hibernate.initialize(myObject);
return myObject;
})
.collect(Collectors.toList());
}
请注意,此方法由另一个带有@Transactional批注的方法调用以管理交易。