sql - Spring Data Jpa规范给定问题的实现

标签 sql spring spring-data-jpa specifications

我有一张像这样的 table

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

我想获取我的结果集

ColA        ColB
Name1       1
Name2       1

我们如何在 Spring Data JPA 规范中实现它?

最佳答案

在您的存储库界面中添加以下代码。我认为它应该有效。

    @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);

教程:Spring data Tutorial

规范示例:Spring Data specification

Spring 规范示例:Spring Specification How-to

Stackoverflow 引用:Spring Specification

关于sql - Spring Data Jpa规范给定问题的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52254908/

相关文章:

sql - SQLite 中 2 个表的值

sql - 使用 Select 语句重组键/值数据

mysql - 可以在 WHERE 中执行 UPDATE 子句吗?

spring - 使用 Spring 4.x 的 Solace 连接问题

java - 有没有办法在 JPA 存储库中的 @Query 注释中使用常量(EnumType Ordinal)值?

java - Spring 启动: Can't Autowire Class from Other Jar Library

sql - 如何在 Postgres 中实现 Oracle count(distinct) over partition

java - 使用 Java Spring RestTemplate 上传大型二进制文件

spring - 尝试用 postman 上传 MultipartFile

java - 如何在rest api中编写自定义验证?