2017-05-21 99 views
7

Używam Spring 5 w moim projekcie. Do dziś dostępna była metoda CrudRepository.#findOne.Missing CrudRepository # findOne method

Ale po pobraniu najnowszej migawki nagle zniknął! Czy jest jakieś odniesienie, że ta metoda nie jest teraz dostępna?

Moja lista zależność:

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-validation' 
    compile 'org.springframework.boot:spring-boot-starter-web' 
    compile 'org.springframework.boot:spring-boot-starter-data-jpa' 
    runtime 'org.springframework.boot:spring-boot-devtools' 

    runtime 'com.h2database:h2:1.4.194' 
    compile 'org.projectlombok:lombok:1.16.14' 
    compile 'org.modelmapper:modelmapper:0.7.5' 


    testCompile 'org.springframework.boot:spring-boot-starter-test' 

    testCompile 'org.codehaus.groovy:groovy-all:2.4.10' 

    testCompile 'cglib:cglib:3.2.5' 
    testCompile 'org.spockframework:spock-core:1.0-groovy-2.4' 
} 

UPDATE:

Wydaje się, że ta metoda została zastąpiona CrudRepository#findById

Odpowiedz

11

proszę zobaczyć DATACMNS-944 który jest powiązany this commit który posiada następującą zmianę nazwy

  • findOne(…) ->findById(…)
  • save(Iterable) ->saveAll(Iterable)
  • findAll(Iterable<ID>) ->findAllById(…)
  • delete(ID) ->deleteById(ID)
  • delete(Iterable<T>) ->deleteAll(Iterable<T>)
  • exists() ->existsById(…)
0

pragmatyczne przekształcić

stary sposób:

Entity aThing = repository.findOne(1L); 

Nowy sposób:

Optional<Entity> aThing = repository.findById(1L); 
2

Zauważ, że findById nie jest dokładnym zamiennikiem findOne, zwraca Opcjonalnie zamiast null.

Będąc niezbyt zaznajomieni z nowymi rzeczami java zajęło mi trochę czasu, aby dowiedzieć się, ale to okazuje zachowanie findById do findOne jeden:

return rep.findById(id).orElse(null);