缺少 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

原文由 Andrii Abramov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 411
2 个回答

请参阅与 此提交 关联的 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(…)         ║
╚═════════════════════╩═══════════════════════╝

原文由 Sean Carroll 发布,翻译遵循 CC BY-SA 4.0 许可协议

Note that findById is not an exact replacement for findOne , it returns an Optional instead of null .

由于不太熟悉新的 Java 东西,我花了一点时间才弄清楚,但这将 findById 行为变成了 findOne 一个:

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

原文由 Tinus Tate 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题