use*_*850 2 spring spring-data-jpa
我实际上是在使用不同的过滤器进行研究。
当我使用JpaRepository进行简单查询时,我发现JpaSpecificationExecutor可以使用Criterias进行动态查询。
我的问题是我需要使用group by和count()创建一个复杂的查询。分组依据是可以的,但是我找不到如何覆盖“选择”部分来放置“计数”指令的方法。
有人可以帮我吗?
我正在使用spring 3.1.2和spring-jpa-data 1.0.3这是我的代码:
return new Specification< Article >() {
@Override
public Predicate toPredicate(final Root<Article> root,
final CriteriaQuery<?> query, final CriteriaBuilder builder) {
//count ???
query.groupBy(root.get(Article_.id));
Predicate p = builder.and(builder.like(root.<String> get(Article_.title), "%" + title + "%"));
return p;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢 !
不幸的是,您不能使用spring-data Specification执行此操作。
您可以在这里看到为什么以及如何在仍使用spring-data的情况下做到这一点(有一个简单的查询仅返回一个字段): spring-data规范-返回id列表而不是对象
要获取字段列表,可以使用JPA Tuple。您可以在此处找到示例: JPA和条件API-仅选择特定的列
简短版本:您需要创建一个将使用的自定义spring-data存储库CriteriaQuery<Tuple>。
| 归档时间: |
|
| 查看次数: |
14944 次 |
| 最近记录: |