【问题标题】:How fetch data by distinct column and count of column in spring data jpa?spring data jpa中如何通过不同的列和列数获取数据?
【发布时间】:2020-01-16 08:55:31
【问题描述】:

我有一个 postgresql 表如下:

------------------+------------------------+------------------------
      id          +        username        +      sessionId
-------------------------------------------+------------------------
      1           +  admin                 +   sfs02asdf02sadf92sfda
      2           +  admin                 +   2adfasdfhjlweashfuwaf
      3           +  ali                   +   23asfdadsfhkjiwuqeoas
      4           +  admin                 +   aadfhlajdfjkasdh27ask
      5           +  ali                   +   hadsuiadsfhkioasdkfha

现在我想获取如下数据:

页面:1,页面大小:n:

[
   ['admin', 3, 'sfs02asdf02sadf92sfda'],
   ['ali', 2, '23asfdadsfhkjiwuqeoas'],
   ...
]

如何在 Spring data jpa 中获取如下数据?

注意:第一项是username,第二项是count of username,第三项是first sessionId

【问题讨论】:

  • 我将使用 JdbcTemplate 进行此 SQL 聚合查询。

标签: sql postgresql spring-boot spring-data-jpa


【解决方案1】:

如果您使用的是 Spring Data JPA,希望您了解分页实现。现在,对于您的查询,您可以编写 Native Queries,这将进入分页实现。

@Query(value = "select 'expected value' * from Table", nativeQuery = true)
Page<Map<String, Object>> findSessionId(@Param("userId") Integer userId, Pageable pageable);

那么, 你可以有一个函数来访问输出值并返回给控制器。

棘手的部分是,如果您编写了正确的 SQL,则无需在服务层执行任何操作,否则您应该从服务层执行一些变通方法。

【讨论】:

    猜你喜欢
    • 2017-10-05
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2022-01-18
    • 1970-01-01
    • 2019-07-26
    • 2019-06-03
    相关资源
    最近更新 更多