加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – spring data findBy返回类型

发布时间:2020-12-15 02:15:24 所属栏目:Java 来源:网络整理
导读:spring数据findBy方法有哪些可能的返回类型?我没有在任何地方找到任何综合列表. 像findByXXX可以返回 1) Entity2) OptionalEntity3) ListEntity4) StreamEntity 还有更多,但我们有一个明确的清单吗? 此外,List Entity当没有找到数据时返回emptyList但是Str
spring数据findBy方法有哪些可能的返回类型?我没有在任何地方找到任何综合列表.

像findByXXX可以返回

1) Entity
2) Optional<Entity>
3) List<Entity>
4) Stream<Entity>

还有更多,但我们有一个明确的清单吗?

此外,List< Entity>当没有找到数据时返回emptyList但是Stream< Entity>如果没有找到数据,则返回null,因此当您在流上应用map / filter等时,您将获得NPE.

除了在调用流函数之前物理检查null之外,是否有更好的方法来使用Stream而不会导致NPE.

解决方法

您的可能退货类型列表是相关的.当您需要分页结果时,您也可以使用类型页面和切片.见例子:

Page<User> findByLastname(String lastname,Pageable pageable);

Slice<User> findByLastname(String lastname,Pageable pageable);

“第一种方法允许您将org.springframework.data.domain.Pageable实例传递给查询方法,以动态地将分页添加到静态定义的查询中.页面知道可用元素和页面的总数.它通过以下方式实现:基础设施触发计数查询以计算总数.由于这可能很昂贵,取决于所使用的商店,Slice可以用作返回.Slice只知道是否有下一个Slice可用,这可能只是走路时的思想就足够了更大的结果集.“ – 查看更多:Spring Data Documentation

对于另一个问题,您可以使用Guava / Java 8 Optional.这样,您的查询方法将返回包含找到的对象的Optional或空的Optional.可选是使用非null值替换可空T引用的方法,请参阅示例:

Optional<User> findById(Long id);

我希望我能帮助你. =)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读