Мой собственный репозиторий:
Код: Выделить всё
public interface SessionRepository extends JpaRepository {
}
Код: Выделить всё
@RequestMapping(value = "{id}", method = RequestMethod.PUT)
public Session update(@PathVariable Long id, @RequestBody Session session){
//in original version used in the course use findOne(Id) (deprecated)
Optional existingSession = sessionRepository.findById(id);
//take existing session and copy incoming session data onto it
BeanUtils.copyProperties(session, existingSession, "session_id");
return sessionRepository.saveAndFlush(existingSession);
}
Похоже, что в последней версии Spring Boot 3.0.2 метод findOne() устарел, и вместо этого мне приходится использовать findById() и возвращать необязательный тип. На несколько вопросов об этом типе ошибок были даны ответы со ссылкой на метод findOne(id), однако это не является источником моей проблемы, и я не могу понять, как исправить мой код.
О методах, которые я использую:
saveAndFlush в JpaRepository:
Код: Выделить всё
S saveAndFlush(S entity);
Код: Выделить всё
Optional findById(ID id);
Сессия — это T, объект в моем пользовательском репозитории (SessionRepository), но это также S, объект, который я передаю и возвращаю из saveAndFlush(). Вместо этого я должен передать и вернуть что-то, что расширено из моего объекта Session (S расширяет T0. Я не уверен, как расширить это, не нарушая все остальное в моем коде, я чувствую, что вместо этого мне следует что-то перезаписать, как предлагали другие, но я не уверен, где это сделать
Подробнее здесь: https://stackoverflow.com/questions/753 ... ts-bound-s
Мобильная версия