PostgreSQL getResultStream() и getResultList()JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 PostgreSQL getResultStream() и getResultList()

Сообщение Anonymous »

У меня есть запрос на получение всех строк таблицы:

Код: Выделить всё

@Repository
public class ARepository {

@PersistenceContext
private EntityManager entityManager;

@Override
public List findAll() {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(A.class);
Root root = criteriaQuery.from(A.class);

criteriaQuery.select(root);

return entityManager
.createQuery(criteriaQuery)
.getResultList();
}

}
Я хотел бы использовать Stream, чтобы предотвратить перегрузку памяти:

Код: Выделить всё

@Repository
public class ARepository {

@PersistenceContext
private EntityManager entityManager;

@Override
public Stream streamAll() {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(A.class);
Root root = criteriaQuery.from(A.class);

criteriaQuery.select(root);

return entityManager
.createQuery(criteriaQuery)
.getResultStream();
}

}
Однако я не совсем понимаю разницу между getResultList и getResultStream, учитывая, что в документации указано: «Выполните запрос SELECT и верните результаты запроса как типизированный java.util.stream.Stream. По умолчанию этот метод делегирует getResultList().stream(), однако поставщик постоянства может переопределить этот метод, чтобы предоставить дополнительные возможности". Если это так (я использую PostgreSQL), какой смысл использовать тот или иной? Как я могу предотвратить нехватку памяти?

Подробнее здесь: https://stackoverflow.com/questions/792 ... resultlist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»