gpt4 book ai didi

Spring 数据 JPA。如何从 findAll() 方法中仅获取 ID 列表

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

我有一个非常复杂的模型。实体有很多关系等等。

我尝试使用 Spring Data JPA 并准备了一个存储库。

但是当我调用具有对象规范的方法 findAll() 时,由于对象非常大,因此会出现性能问题。我知道是因为当我调用这样的方法时:

@Query(value = "select id, name from Customer ")
List<Object[]> myFindCustomerIds();

我在性能方面没有任何问题。

但是当我调用时

List<Customer> findAll(); 

我在性能方面遇到了很大的问题。

问题是我需要使用客户规范调用 findAll 方法,这就是为什么我不能使用返回对象数组列表的方法。

如何编写一个方法来查找具有客户实体规范但仅返回一个 ID 的所有客户。

像这样:

List<Long> findAll(Specification<Customer> spec);
  • 在这种情况下我不能使用分页。

请帮忙。

最佳答案

为什么不使用 @Query 注释?

@Query("select p.id from #{#entityName} p")
List<Long> getAllIds();

我看到的唯一缺点是当属性 id 更改时,但由于这是一个非常常见的名称并且不太可能更改(id = 主键),这应该没问题。

关于 Spring 数据 JPA。如何从 findAll() 方法中仅获取 ID 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331767/

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