Spring JPA,收集计数

时间:2016-03-02 23:25:38

标签: java spring jpa spring-data-jpa

我目前正在开展一个项目,我已经为其提供了一个实体 Customer ,其中包含 Order 实体的集合,因此是OneToMany Customer Order 之间的关系。假设我想选择 Customer 集合的一个子集,其中包含 Order 实体的相应数量(在SQL中称为{{1} }):不存在Spring Data JPA提供的查询方法的默认实现,以避免使用JPQL编写自定义查询,该查询在一个SQL查询中取代客户的订单数而不是 n + 1 < / em>查询 n 的客户数量是多少?或某些注释可以在 COUNT 中添加到某种瞬态字段,例如Customer

1 个答案:

答案 0 :(得分:2)

如果正确命名存储库接口方法,Spring Data JPA将自动创建相应的COUNT SQL。例如,下面的两个存储库方法将按客户ID或客户姓氏计算订单数

public interface OrderRepository extends CrudRepository<Order,Long> {
  Long countByCustomerId(Long id);
  Long countByCustomerLastName(String lastName);
}

请仔细阅读以下链接中的代码以获取完整背景

https://github.com/juttayaya/stackoverflow/tree/master/CustomerOrder