gpt4 book ai didi

java - Spring Data JPA 如何使用 Kotlin nulls 而不是 Optional

转载 作者:IT老高 更新时间:2023-10-28 13:29:30 28 4
gpt4 key购买 nike

我正在使用 Spring Data JPA 和 Kotlin 编写一个 Spring Boot 应用程序,我注意到在 CrudRepository 中有以下方法:

Optional<T> findById(ID id);

不过,我使用的是 Kotlin,它处理空值的方式比 Optional 更流畅。有谁知道我将如何将该方法转换为这样工作?

fun findById(id: ID): T?

当我扩展 Repository 本身并使用该签名创建一个 repo 时,我收到错误:

java.lang.ClassCastException: java.util.Optional cannot be cast to com.books.Book

最佳答案

从 Spring Data Lovelace SR4/Spring Boot 2.1.2 开始,CrudRepository.findByIdOrNull(id: ID): T? = findById(id).orElse(null) Kotlin 扩展现在提供了一种开箱即用的方法来检索 Spring Data 中的可为空的实体。

如果出于性能原因您想避免使用 Optional<T>包装器,请注意,您还可以使用 findFooById(id: ID): T? 创建自定义接口(interface)功能。查询执行是特定于存储的,但大多数都使用内部可为空的值,并将避免 Optional<T> 的成本包装。请注意,对于大多数用例来说,这种开销应该可以忽略不计,因此建议使用内置扩展。

DATACMNS-1346了解更多详情。

关于java - Spring Data JPA 如何使用 Kotlin nulls 而不是 Optional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47143127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com