Я использую Spring 5 в своем проекте. До сегодняшнего дня был доступен метод CrudRepository#findOne
.
Но после загрузки последнего снимка он внезапно исчез! Есть ли упоминания о том, что метод сейчас недоступен?
Мой список зависимостей:
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
runtime 'com.h2database:h2:1.4.194'
}
ОБНОВИТЬ:
Кажется, что этот метод заменен на CrudRepository#findById
java
spring
spring-boot
spring-data
spring-data-jpa
Андрей Абрамов
источник
источник
Обратите внимание, что
findById
это не точная заменаfindOne
,Optional
вместоnull
.Поскольку я не очень хорошо знаком с новыми Java-вещами, мне потребовалось некоторое время, чтобы разобраться, но это превращает
findById
поведение вfindOne
одно:источник
Optional
добавлен для очистки кода от всехnull
проверок. Просто измените тип возврата вашего метода и используйте его,Optional
как и положено хорошему бойскаутуУ нас было много сотен применений старого
findOne()
метода. Вместо того, чтобы приступить к гигантскому рефакторингу, мы в итоге создали следующий промежуточный интерфейс, и наши репозитории расширили его, а неJpaRepository
напрямую.источник
return findById(id).orElse(null);
достаточноПрагматическая трансформация
Старый способ:
Новый способ:
источник