我正在尝试将spring-boot版本升级到2.1.2,并且我们正在使用Spring data JPA进行数据库操作。
在很多地方,我们正在调用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()
,因此,我需要做的改动很小。
答案 0 :(得分:0)
我建议将现有方法重命名为其他名称。
例如findByIdNullable
。
使用现代IDE,这应该是一个容易的更改。