【问题标题】:Spring Jpa findBy method to fetch top resultsSpring Jpa findBy 方法来获取最佳结果
【发布时间】:2019-01-13 15:34:55
【问题描述】:

我有一个包含以下数据的表格。

Name    Version
----    -------
ABC      1.0
ABC      1.1
BCD      1.0
BCD      1.1
BCD      1.2

我正在尝试编写一个 spring data jpa findBy 方法来查询所有具有最新版本的名称。所以我的结果应该是

Name     Version
----     -------
ABC      1.1
BCD      1.2

我试过了

findByTopVersionDesc
findByDistinctTopNameDescVersionDesc
findByFirstNameDescVersionDesc

和其他组合,但无法使这项工作。任何建议

【问题讨论】:

  • 我认为你不能仅仅通过声明一个方法来做到这一点。您将如何使用 SQL 来做到这一点?
  • @Query(value = "select d.name, d.version from entity d inner join (select distinct name, MAX(version) as version from entity group by name) as a on d.name = a.name where d.version = a.version", nativeQuery = true) List findLatestDomainInstances();它是用 nativequery 编写的。现在我们要返回页面对象,并尝试将 datarest 与分页和排序存储库一起使用。在这样做时,Spring 不支持根据谷歌中的其他一些来源使用本机查询进行分页,我正在尝试使用 findBy 方法编写此查询
  • 看这个答案stackoverflow.com/questions/38349930/… 似乎原生查询支持分页。

标签: spring spring-mvc spring-boot spring-data-jpa spring-data


【解决方案1】:

可能你写方法名的方式不对:

Spring Docs for what you are trying to do

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 2014-07-21
    • 2010-09-13
    相关资源
    最近更新 更多