Ich verwende Spring 5 in meinem Projekt. Bis heute gab es eine verfügbare Methode CrudRepository#findOne
.
Aber nach dem Herunterladen des neuesten Schnappschusses verschwand er plötzlich! Gibt es einen Hinweis darauf, dass die Methode derzeit nicht verfügbar ist?
Meine Abhängigkeitsliste:
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'
}
AKTUALISIEREN:
Scheint, dass diese Methode durch ersetzt wurde CrudRepository#findById
java
spring
spring-boot
spring-data
spring-data-jpa
Andrii Abramov
quelle
quelle
Beachten Sie, dass dies
findById
kein exakter Ersatz für istfindOne
, sondern einOptional
statt zurückgibtnull
.Da ich mit neuen Java-Dingen nicht sehr vertraut war, brauchte ich eine Weile, um das herauszufinden, aber dies macht das
findById
Verhalten zufindOne
einem:quelle
Optional
wurde hinzugefügt, um den Code von allennull
Überprüfungen zu reinigen . Ändern Sie einfach den Rückgabetyp Ihrer Methode und verwenden Sie ihnOptional
wie ein guter PfadfinderWir hatten viele hundert Anwendungen der alten
findOne()
Methode. Anstatt uns auf einen Mammut-Refaktor einzulassen, haben wir am Ende die folgende Zwischenschnittstelle erstellt und von unseren Repositories erweitern lassen, anstatt sieJpaRepository
direkt zu erweiternquelle
return findById(id).orElse(null);
genügtEine pragmatische Transformation
Alter Weg:
Neuer Weg:
quelle