Я пытаюсь обновить версию Spring-boot до 2.1.2, и мы используем данные JPA Spring для операций с БД.
Во многих местах мы используем метод findById(Id)
, который был изменен на Optional<T> findById(Id).orElse(null)
, это выдает мне ошибки времени компиляции с моим существующим findById(Id)
, тип возвращаемого значения которого не Optional<>
.
Чтобы преодолеть этот сценарий, я реализовал пользовательский интерфейс, который расширяет BaseJpaRepository
, но здесь методимя и аргументы одинаковы как в старой, так и в новой версии Spring Boot.
Я попытался позвонить, как показано ниже
@NoRepositoryBean
public interface CustomBaseJpaRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {
default T findById(ID id) {
return (T) findById(id).orElse(null);
}
}
Но он пытается выполнить цикл, и я не уверен, как вызватьCrudRepository.findById(Id)
из моего findById()
, так что мне нужно сделать очень минимальные изменения.