缺少 CrudRepository#findOne 方法

我在我的项目中使用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取代


答案 1

请参阅与此提交关联的 DATACMNS-944,该提交具有以下重命名

╔═════════════════════╦═══════════════════════╗
║      Old name       ║       New name        ║
╠═════════════════════╬═══════════════════════╣
║ findOne(…)          ║ findById(…)           ║
╠═════════════════════╬═══════════════════════╣
║ save(Iterable)      ║ saveAll(Iterable)     ║
╠═════════════════════╬═══════════════════════╣
║ findAll(Iterable)   ║ findAllById(…)        ║
╠═════════════════════╬═══════════════════════╣
║ delete(ID)          ║ deleteById(ID)        ║
╠═════════════════════╬═══════════════════════╣
║ delete(Iterable)    ║ deleteAll(Iterable)   ║
╠═════════════════════╬═══════════════════════╣
║ exists()            ║ existsById(…)         ║
╚═════════════════════╩═══════════════════════╝

答案 2

请注意,它不是 的精确替代,它返回 一个而不是 。findByIdfindOneOptionalnull

由于不是很熟悉新的java事物,我花了一点时间才弄清楚,但这将行为变成了一个:findByIdfindOne

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

推荐