Saya menggunakan Spring 5 dalam proyek saya. Sampai saat ini masih ada metode yang tersedia CrudRepository#findOne
.
Tetapi setelah mengunduh snapshot terbaru, tiba-tiba menghilang! Apakah ada referensi bahwa metode tersebut tidak tersedia sekarang?
Daftar ketergantungan saya:
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'
}
MEMPERBARUI:
Tampaknya metode ini telah diganti dengan CrudRepository#findById
java
spring
spring-boot
spring-data
spring-data-jpa
Andrii Abramov
sumber
sumber
Perhatikan bahwa
findById
ini bukan pengganti yang tepatfindOne
, ia mengembalikanOptional
alih - alihnull
.Menjadi tidak terlalu akrab dengan hal-hal baru java butuh beberapa saat untuk mengetahuinya, tetapi ini mengubah
findById
perilakunya menjadifindOne
satu:sumber
Optional
ditambahkan untuk membersihkan kode dari semuanull
pemeriksaan. Ubah saja metode jenis pengembalian Anda dan gunakanOptional
seperti pramuka yang baikKami memiliki ratusan penggunaan
findOne()
metode lama . Daripada memulai refactor raksasa, kami akhirnya membuat antarmuka perantara berikut dan repositori kami memperluasnya alih-alih memperluasJpaRepository
secara langsungsumber
return findById(id).orElse(null);
cukupTransformasi pragmatis
Cara lama:
Jalan baru:
sumber