gpt4 book ai didi

Java Spring : MongoRepository count() and findAll()

转载 作者:行者123 更新时间:2023-12-02 07:36:51 24 4
gpt4 key购买 nike

我注意到 mongo 的 Spring 数据中有一些奇怪的东西:

MongoRepository延伸CrudRepositoryfindAll()返回 Iterable count() 没问题方法,因为它返回 long .

class CrudRepository {

...

Iterable<T> findAll();

long count();
}

在蒙戈 MongoRepository findAll()方法返回 List :

class MongoRepository extends CrudRepository {

...

@Override
List<T> findAll();
}

但是一个List#size()返回 intMongoRepository#count()方法返回很长一段时间。

当集合超过 Integer.MAX_VALUE 时会发生什么!?我们还能打电话List<T> findAll()

最佳答案

我喜欢你的观点:)根据你向 this question. 提出的问题,这个问题看起来很相似

正如 Java 语言规范中提到的: 15.10.1. Array Creation Expressions :

Each dimension expression undergoes unary numeric promotion (§5.6.1). The promoted type must be int, or a compile-time error occurs.

由于维度必须是 int,所以我们可以在数组中存储最大大小 2,147,483,648,并且考虑到 ArrayList 只是一个数组,我们不能存储超过 INTEGER.MAX_VALUE 的值一个数组列表。 (当然,List 的不同实现可能有不同的行为)

Spring Data JPA允许您自定义查询方法。您始终可以自由创建返回类型为 Iterable 的查询方法。

@Override
Iterable<T> findAll();

关于Java Spring : MongoRepository count() and findAll(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57996053/

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