当前位置: 首页 > 知识库问答 >
问题:

如何从Spring数据JPA组按查询实现ORDER BY

司空劲
2023-03-14
@Query("select new br.com.cwidevs.dto.Goleador(j.id, sum(pj.gols)) from PartidaJogador pj join pj.id.jogador j group by j.id")
public List<Goleador> getGoleadores();
public class Goleador {

    private Long jogador;

    private Long totalGols;    
}

共有1个答案

丁高峯
2023-03-14

试试看:

@Entity
public class Goleador {
    //...
}

@Entity
public class PartidaJogador {
    //...

    @ManyToOne
    private Goleador jogador;

    private Long gols;

    //...
}

// DTO as Projection
public interface GoleadorWithGols {
    Goleador getGoleador();
    Long getTotalGols()
}

public interface GoleadorRepo extends JpaRepository<Goleador, Long> {
    @Query("select j as goleador, sum(pj.gols) as totalGols from PartidaJogador pj join pj.jogador j group by j order by totalGols")
    List<GoleadorWithGols> getGoleadores();
}

这里我们使用一个投影GoleadorWithGols作为DTO来获取必要的数据。

更多信息在这里。

 类似资料:
  • 我使用Spring批处理和Spring数据(以及Hibernate)在数据库表中插入CSV文件。每次插入CSV时,我都必须使用data jpa deleteAll()方法删除表中以前的数据。问题在于,在每个delete/insert语句之后,表的ID都会自动连续递增(@GeneratedValue(strategy=GenerationType.IDENTITY))。我希望每次删除后,ID从1开始

  • 我有3个实体在我的数据库。实体A具有主密钥PK-A,实体B具有主密钥PK-B,实体C具有主密钥PK-C。 实体A与实体B具有1对多关系,实体B与实体C具有1对多关系 我想在Spring Data JPA中基于PK-A(实际上是实体B中的外键)查询实体C。有可能吗? 但这行不通。还有什么建议我可以试试吗?

  • 我正在用Spring Data JPA开发一个Spring Boot应用程序。我正在使用一个自定义的JPQL查询按某个字段分组并获得计数。下面是我的存储库方法。 实际运行结果如下:

  • 谁能告诉我@Query注释将支持数据库独立性查询机制 例子: 如果我写这个查询,它会支持所有的数据库,如Mysql、oracle、postgres。 我在spring data jpa参考文档站点中发现了类似的内容 这意味着如果我编写nativeQuery=true,它将被视为本机查询,如果不编写,它将表现为Spring data jpa特定查询,或者它将如何表现请澄清。

  • 我的所有存储库都在扩展commonService存储库,而commonService存储库反过来也在扩展JpaRepository和JpaSpecification 我想在CommonReadRepository中定义原生Sql查询,如:mysql:select*from table limit 1,20; @Query(value=“Select*from?1 limit?2,?3”,nativ

  • 我是spring数据Mongo的新手,所以我肯定做错了什么,因为我无法执行这样一个简单的查询。这是我的模型: 我想从一个品牌获得所有的模型,所以我实现DAO如下: 如果我在shell中执行这个mongodb查询,它就会工作: 但是,Java应用程序抛出以下异常: 很明显,它在Brand类中查找一个字段$id,但由于它不存在,它失败了。因此,我将查询更改为以下内容,以便它导航到id字段: 现在,它没