Estou usando o Spring 5 em meu projeto. Até hoje não havia método disponível CrudRepository#findOne
.
Mas depois de baixar o último instantâneo, ele desapareceu de repente! Existe alguma referência de que o método não está disponível agora?
Minha lista de dependências:
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'
}
ATUALIZAR:
Parece que este método foi substituído por CrudRepository#findById
java
spring
spring-boot
spring-data
spring-data-jpa
Andrii Abramov
fonte
fonte
Observe que
findById
não é uma substituição exata parafindOne
, ele retorna um emOptional
vez denull
.Por não estar muito familiarizado com as novidades do java, demorei um pouco para descobrir, mas isso transforma o
findById
comportamento emfindOne
um:fonte
Optional
foi adicionado para limpar o código de todas asnull
verificações. Basta alterar o tipo de retorno do seu método e usarOptional
como um bom escoteiro deveriaTínhamos muitas centenas de usos do
findOne()
método antigo . Em vez de embarcar em um refator gigantesco, acabamos criando a seguinte interface intermediária e fizemos com que nossos repositórios a estendessem em vez de estenderJpaRepository
diretamentefonte
return findById(id).orElse(null);
bastaUma transformação pragmática
À moda antiga:
Nova forma:
fonte