#java #java-stream
#java #java-stream
Вопрос:
Есть класс сущности:
public class Call {
private String uniqId;
private String gwNumber;
}
String line = "qwe-123,10nrty-345,15nasd-567,17";
Arrays.stream(result.split("n")) // "n" is used to separate data for each entity
.forEach(
s-> {
String[] callFields = s.split(","); // "," is used to separate data for each filed of entity
Call call = new Call();
call.setUniqId(callFields[0]);
call.setGwNum(callFields[1]);
List<Call> callList = new ArrayList<>();
callList.add(call);
}
);
Как передать callList в репозиторий JPA.Метод saveAll (callList)?
Комментарии:
1. вместо того, чтобы объявлять callingList внутри, объявите его перед вашим потоком, а затем добавьте к нему все значения. Затем вызовите свою функцию сохранения из dao и передайте ей список в качестве аргумента. Если ваше репозиторий расширяет JPA или CRUD репозиторий, то в них уже есть функция сохранения, которая принимает list в качестве аргумента
2. сначала инициал,
callList
затем пропустите его черезsaveAll
.Arrays.stream(line.split("n")) .map(s->s.split(",")).map(arr->new Call(arr[0],arr[1])) .collect(Collectors.toList());
Ответ №1:
Я думаю, вы должны забыть вызвать что-то. От Steram
. Я не говорю, что это невозможно, но это не рекомендуется.
class Call {}
List<Call> callList = Arrays.stream(result.split("n"))
.map(s -> {
Call call = new Call();
// ...
return call;
})
.collect(Collectors.toList());
List<Call> callList
может быть записано в БД.