#java #jpa #spring-data-jpa
#java #jpa #spring-data-jpa
Вопрос:
У меня есть метод интерфейса в моем репозитории
@Query("from Alert a")
Stream<Alert> streamAll();
Поскольку у меня может быть много предупреждений, но мне нужно обрабатывать только каждую запись за раз, и впоследствии мне не нужны связанные данные, я пишу код следующим образом
streamAll()
.forEach(alert-> {
doProcessing(alert);
entityManager.detach(alert);
});
Где я явно выполняю отсоединение предупреждения. Мне было интересно, есть ли более приятный способ сделать это, чтобы я мог просто сделать
streamAllWithDetach()
.forEach(this::doProcessing);
Без написания большого количества пользовательского кода или оболочек AOP.
Ответ №1:
просто сделайте это простым. давайте создадим метод для переноса
doProcessing(alert);
entityManager.detach(alert);