private final EntityManager entityManager;
@Transactional(readOnly = true)
public void processStudentsByFirstNameUsingStreams(String firstName) {
try (Stream<Student> students = repository.findAllByFirstName(firstName)) {
students.peek(entityManager::detach)
.forEach(emailService::sendEmailToStudent);
}
}
如果使用JPA要获取大量数据,需要从entityManager中把获取的entity detach掉。否则会造成内存溢出。
文章讲述了在使用JPA进行大量数据流式查询时,为了避免内存溢出,应调用EntityManager的detach方法分离实体对象,确保高效执行过程。
3093

被折叠的 条评论
为什么被折叠?



