JpaRepository Distinct не работает с более чем одним полем - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть этот запрос, который отлично работает

@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"
    }
]

1 Ответ

0 голосов
/ 13 февраля 2020

Вы должны использовать пружинную проекцию, чтобы получить только одно значение столбца

 interface TaxonomyGroupOnly{
        String getTaxonomyGroup(); 
    }

List<TaxonomyGroupOnly> findDistinctTaxonomyGroupByBrandAndTaxonomyGroupNotNull(String category);

Подробнее о пружинной проекции - https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...