private void doSomething(someProcessModel process){
CustomerModel customer = process.getCustomerModel();
customer.getFoos().stream()
.filter(foo -> foo.getCountryCode().equals(process.getCountryCode()))
.findFirst()
.ifPresent(foo -> {
if(foo.getSomeNumber() == null){
foo.setSomeNumber("1234567");
modelService.save(foo);
}
});
}
Как видно из фрагмента кода выше, у меня есть «CustomerModel», который имеет атрибут «Foos». Это отношения один ко многим. Как вы можете видеть, я провел некоторую фильтрацию, и в конце я хочу обновить значение атрибута 'someNumber' для 'Foo', если оно равно null. Я подтвердил, что все работает, так как значение атрибута "someNumber" обновляется во время отладки. Это совсем не спасает, так как я сделал свою проверку в HM C. Я также подтвердил, что у Interceptor нет условий, которые могли бы вызвать ошибку. В журнале тоже ничего не отображается.
Мне интересно, является ли законным подход к использованию метода "modelService.save ()" внутри метода ifPresent ()? В чем здесь может быть проблема?