考虑以下实体
@Entity
public class Team {
private String title;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "teams")
@OrderBy("firstName ASC")
private Set<User> users = new HashSet<>();
}
我想创建一个存储库findBy查询,它返回team的所有条目,users.count()大于5。
我期望的SQL是:
SELECT t.title, count(*) as total_users FROM team t
LEFT JOIN team_users tu on t.id=tu.team_id
GROUP BY t.id HAVING total_users > 5;
从我的研究来看,有几种方法可以做到这一点,但我想不出其中任何一种。
- Jpa规范执行者
- @query /本机查询
1.命名本机查询
1条答案
按热度按时间cxfofazt1#
以
JpaSpecificationExecutor
为例,需要存储库接口来实现它。通常,存储库也应该是一个接口JpaSpecificationExecutor
接口提供了几个方法,我们将以findAll
为例