spring - JpaRepository Distinct 不适用于多个字段
问题描述
我有这个工作正常的查询
@Query(value = "SELECT DISTINCT taxonomyGroup FROM sagePrices AS sP WHERE sP.brand = :brand AND sP.taxonomyGroup IS NOT NULL", nativeQuery = true)
List<String> findTaxonomyByBrandMatching(String brand);
但我想使用 JPARepository。我已经尝试了几个选项,但没有任何效果,我得到了所有正确的记录,但它们仍然重复
这些是我尝试过的几个选项。
List<SagePricesEntity> findTaxonomyGroupDistinctByBrandAndTaxonomyGroupNotNull(String brand);
List<SagePricesEntity> findDistinctTaxonomyGroupByBrandAndTaxonomyGroupNotNull(String brand);
List<SagePricesEntity> findDistinctTaxonomyGroupByTaxonomyGroupNotNullAndBrand(String brand);
有谁知道我想做的事情是否可行?
这是我在使用 JPARepository 查询时得到的响应
[
{
"taxonomyGroup": "rtrtr"
},
{
"taxonomyGroup": "rtrtr"
},
{
"taxonomyGroup": "fhfdhfdhdfh"
},
{
"taxonomyGroup": "ydtyjtyjetyj"
}
]
解决方案
您必须使用弹簧投影来仅获取一列值
interface TaxonomyGroupOnly{
String getTaxonomyGroup();
}
List<TaxonomyGroupOnly> findDistinctTaxonomyGroupByBrandAndTaxonomyGroupNotNull(String category);
更多关于 Spring Projection - https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections
推荐阅读
- hasura - 如何使 Hasura 连接到特定的 postgresql 模式
- c# - 从返回 Task 的函数返回的最佳实践是什么
,如果没有找到数据? - reactjs - 如何使按钮更改 Div 的内容
- regex - 这个正则表达式在做什么?
- angular - 为什么属性组获得空值
- shader - 为什么这个着色器变量不会改变?(dx12,hlsl)
- aspnetboilerplate - Abp Boilerplate NET core DevExpress XtraReport WebDocumentViewer 无法打印或导出
- python - Python代码到具有不同名称的多个JSON文件
- mysql - MYSQL GroupBy 只需要取值
- python - 一次一轮循环调度算法