Spring Data Jpa спецификация реализации данной проблемы - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть стол как

ColA        ColB
Name1       1
Name1       2
Name2       1
Name2       3
Name2       5

Я хочу получить свой набор результатов как

ColA        ColB
Name1       1
Name2       1

Как мы можем реализовать это в спецификации JPA данных весны?

1 Ответ

0 голосов
/ 10 сентября 2018

Добавьте приведенный ниже код в интерфейс вашего репозитория.Я думаю, что это должно работать.

    @Async
   @Query(value = "select * " +
                " from TableA ta " +
                "where ta.colb = :colb",nativeQuery=true)
    List<T> findByColA(@Param("colb") String colb);

или

со спецификацией

Создать объект спецификации:

Функции критериев (SUM, MAX или MIN) для Спецификации :

javax.persistence.criteria.CriteriaQuery<T> Проверьте этот интерфейс, чтобы найти больше информации.

    final class UserSpecifications {

        private UserSpecifications() {}

        static Specification<User> findData(String colb, String columnName) {
                  return new Specification<User>() {
                public Predicate toPredicate(Root<User> root,                                 
                                    CriteriaQuery<?> query, 
                                    CriteriaBuilder cb) {
                     root = query.from(User.class);
                     Predicate colbp = cb.equal(root.get(columnName), colb);
                     Expression<String> groupByExp = root.get(columnname).as(String.class);
                     query.where(colbp);
                     query.select(cb.min(root.get(column.getName())));
                     query.groupBy(groupByExp);                         
                }
            }
       }
    }

    Specification<User> spec = UserSpecifications.findData("1", "columnName");

    List<User> allUsers = repository.findAll(spec);

Учебное пособие: Учебное пособие по пружинам

пример спецификации: Пружина Спецификация данных

Пружина Пример спецификации: Пружина Спецификация Инструкции

Stackoverflow ref: Пружина Технические характеристики

...