微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle Spring Boot可分页计数查询错误

如何解决Oracle Spring Boot可分页计数查询错误

我在使用Oracle的Spring JPA时遇到麻烦。

首先,我需要制作一个元素列表(可分页),但是我只有一个视图可以做所有事情。

这就是我需要在sql语句上使用“ distinct”子句的原因。客户别给我其他方式来获取数据。

课程:

@Entity
@IdClass(TRN04MunicipalityIdEntity.class)
@Table(name = "VISTA_EVENTOS_OGP")
@NamedQuery(name = "TRN04MunicipalityEntity.findId",query = "select distinct e from TRN04MunicipalityEntity e where e.idMunicipio = ?1 and e.idProvincia = ?2"
            + " order by COD_PROV_norA")
@NamedQuery(name = "TRN04MunicipalityEntity.findAllOf",query = "select distinct e from TRN04MunicipalityEntity e where COD_MUN_norA is not null order by COD_PROV_norA")

public class TRN04MunicipalityEntity {

    @Id
    @Column(name = "COD_MUN_norA",precision = 3,scale = 0)
    private BigDecimal idMunicipio;
    
    @Id
    @Column(name = "COD_PROV_norA",scale = 0)
    private BigDecimal idProvincia;

    @Column(name = "MUNICIPIO_ES",length = 50,insertable = false,updatable = false)
    @Basic()
    private String municipioEs;

    @Column(name = "MUNICIPIO_EU",updatable = false)
    @Basic()
    private String municipioEu;
}

当我在“ findAllOf”上使用分页时,会有一些奇怪的东西。

可以进行分页查询(第1页的情况)

select
        * 
    from
        ( select
            distinct trn04munic0_.COD_MUN_norA as cod_mun_nora4_0_,trn04munic0_.COD_PROV_norA as cod_prov_nora5_0_,trn04munic0_.MUNICIPIO_ES as municipio_es6_0_,trn04munic0_.MUNICIPIO_EU as municipio_eu7_0_ 
        from
            VISTA_EVENTOS_OGP trn04munic0_ 
        where
            COD_MUN_norA is not null 
        order by
            COD_PROV_norA ) 
    where
        rownum <= ?

但是...计数查询毫无意义

select
        count(distinct trn04munic0_.COD_MUN_norA,trn04munic0_.COD_PROV_norA) as col_0_0_ 
    from
        VISTA_EVENTOS_OGP trn04munic0_ 
    where
        COD_MUN_norA is not null

在count函数上有两个元素,这是胡说八道

有什么想法吗?

坦克很多

解决方法

使用@Query( ... countQuery="...")显式指定适当的计数查询。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。