Ксения, книгу пишут хорошие специалисты, тоже начинал с книг. Практикой все равно узнаешь больше, но банальных вопросов уже не возникает, каких тут иногда бывает куча
Можно ещё в метод printResults добавить второй аргумент, и там же проверку чтоб количество элементов первого совпадала с количеством второго. Ну и такой же цикл
Если в двух словах, там вся разница в методе save
Классический AR этот метод вызывается прям в сущности, что автоматом либо добавляет, либо изменяет запись
Либо репозиторий, который сохранение или обновление берет на себя и логика из сущности в нем