Spring Boot: предполагаемый тип «S» для параметра типа «S» выходит за пределы его границы; следует расширить - saveAndFlJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Boot: предполагаемый тип «S» для параметра типа «S» выходит за пределы его границы; следует расширить - saveAndFl

Сообщение Anonymous »

Я только что начал курс Spring Boot, в котором используется более старая версия (2.19), а я использую 3.0.2. Вот типичная часть кода:
Мой собственный репозиторий:

Код: Выделить всё

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);
}
Все в порядке, пока saveAndFlush не выдает вышеупомянутую ошибку.
Похоже, что в последней версии Spring Boot 3.0.2 метод findOne() устарел, и вместо этого мне приходится использовать findById() и возвращать необязательный тип. На несколько вопросов об этом типе ошибок были даны ответы со ссылкой на метод findOne(id), однако это не является источником моей проблемы, и я не могу понять, как исправить мой код.
О методах, которые я использую:
saveAndFlush в JpaRepository:

Код: Выделить всё

 S saveAndFlush(S entity);

и findById в CrudRepository:

Код: Выделить всё

Optional findById(ID id);
Я понимаю, что проблема в том, что в моем случае и S, и T являются одним и тем же объектом сеанса, поэтому ошибка говорит мне о расширении модели сеанса.
Сессия — это T, объект в моем пользовательском репозитории (SessionRepository), но это также S, объект, который я передаю и возвращаю из saveAndFlush(). Вместо этого я должен передать и вернуть что-то, что расширено из моего объекта Session (S расширяет T0. Я не уверен, как расширить это, не нарушая все остальное в моем коде, я чувствую, что вместо этого мне следует что-то перезаписать, как предлагали другие, но я не уверен, где это сделать

Подробнее здесь: https://stackoverflow.com/questions/753 ... ts-bound-s
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»