Добавьте приведенный ниже код в интерфейс вашего репозитория.Я думаю, что это должно работать.
@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: Пружина Технические характеристики