У меня есть объект PROJECT с дочерним ВЫХОДОМ (реляционный @OneToMany).
В моем приложении мне нужно получить более 50 000 проектов по базе данных и после этого получить ВЫХОДНУЮ информацию.
После получения 50000 проектов для повышения производительности я пытаюсь использовать параллельный поток, но при запуске кода выдается исключение: Illegal pop() с несоответствующим JdbcValuesSourceProcessingState
In мой поиск, JdbcValuesSourceProcessingState связан с транзакциями в спящем режиме.
Entity:
Можете ли вы мне помочь?
public class Project {
@Id
private Long id;
private String name;
@OneToMany(mappedBy = "project")
private List outputs;
Мой код для получения выходной информации:
List projects = projectRepository.findAll();
Set searchOutputs = Collections.synchronizedSet(new HashSet());
projects.parallelStream().forEach(project -> {
try {
project.getOutputs().forEach(output->{
SearchOutput searchOutput = new SearchOutput(project.getId(),output.getPath(),output.getName(),false);
searchOutputs.add(searchOutput);
});
} catch (Exception e) {
LOGGER.error("ProjectID: {} - {}", project.getId(), e.getMessage());
//throw new RuntimeException(e);
}
});
Подробнее здесь: https://stackoverflow.com/questions/790 ... cvaluessou
ParallelStrams с объектом спящего режима с ленивой загрузкой с исключением JdbcValuesSourceProcessingState ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение