hibernate rownum causes ORA-00918: column ambiguously defined

418 Views Asked by At

when I set a query to be limited to X rows with :

criteria.setFetchSize(fetchSize);
criteria.setMaxResults(fetchSize);

it fails with this error:

ORA-00918: column ambiguously defined

checking the logs the query looks like this:

select
    * 
from
    ( select
        this_.idRespuesta as idRespuesta1_82_25_,
        ...
    from
        respuestas this_ 
        ...
    where
        status2_.idEstado in (
          0
        ) 
        ...
    order by
        this_.fechaRegistro desc 
        ) 
    where
        rownum <= 1;

and running it in sqlDeveloper trows the same error, BUT if you remove the outer select with the rownum or you move the rownum to the inner select it works just fine,

How can I set to hibernate to not do a subselect in this cases and insert the rownum directly in the main select?

Edit 1: full query:

select
    * 
from
    ( select
        this_.idRespuesta as idRespuesta1_82_25_,
        this_.idArea as idArea12_82_25_,
        this_.idAreaDestino as idAreaDestino13_82_25_,
        this_.idAsunto as idAsunto9_82_25_,
        this_.atributos as atributos2_82_25_,
        this_.comentario as comentario3_82_25_,
        this_.comentariorechazo as comentariorechazo4_82_25_,
        this_.fechaAcuse as fechaAcuse5_82_25_,
        this_.fechaEnvio as fechaEnvio6_82_25_,
        this_.fechaRegistro as fechaRegistro7_82_25_,
        this_.folioRespuesta as folioRespuesta8_82_25_,
        this_.infomexzipsn as infomexzipsn10_82_25_,
        this_.porcentaje as porcentaje11_82_25_,
        this_.idEstatusRespuesta as idEstatusRespuest14_82_25_,
        this_.idTipoRespuesta as idTipoRespuesta15_82_25_,
        area3_.idArea as idArea1_29_0_,
        area3_.activosn as activosn2_29_0_,
        area3_.claveCDD as claveCDD3_29_0_,
        area3_.clave as clave4_29_0_,
        area3_.contentId as contentId5_29_0_,
        area3_.descripcion as descripcion6_29_0_,
        area3_.idAreaPadre as idAreaPadre7_29_0_,
        area3_.idInstitucion as idInstitucion11_29_0_,
        area3_.interoperasn as interoperasn8_29_0_,
        area3_.siglas as siglas9_29_0_,
        area3_.titularUsuario as titularUsuario12_29_0_,
        area3_.titularCargo as titularCargo10_29_0_,
        area3_1_.idAreaPadre as idAreaPadre1_4_0_,
        rutaArea(area3_.idArea) as formula0_0_,
        rutaIdArea(area3_.idArea) as formula1_0_,
        institucio5_.idInstitucion as idInstitucion1_72_1_,
        institucio5_.abreviatura as abreviatura2_72_1_,
        institucio5_.activosn as activosn3_72_1_,
        institucio5_.clavecdd as clavecdd4_72_1_,
        institucio5_.descripcion as descripcion5_72_1_,
        institucio5_.endpoint as endpoint6_72_1_,
        institucio5_.interoperasn as interoperasn7_72_1_,
        institucio5_.idTipoInstitucion as idTipoInstitucion8_72_1_,
        institucio5_.uri as uri9_72_1_,
        titular4_.idRepresentante as idRepresentante1_81_2_,
        titular4_.idArea as idArea8_81_2_,
        titular4_.cargo as cargo2_81_2_,
        titular4_.idExterno as idExterno3_81_2_,
        titular4_.idTipoRepresentante as idTipoRepresentant4_81_2_,
        titular4_.materno as materno5_81_2_,
        titular4_.nombre as nombre6_81_2_,
        titular4_.paterno as paterno7_81_2_,
        titular4_1_.prefijo as prefijo1_79_2_,
        titular4_2_.activosn as activosn1_92_2_,
        titular4_2_.idRol as idRol8_92_2_,
        titular4_.nombre || ' ' || titular4_.paterno || ' ' || titular4_.materno as formula10_2_,
        areaauxili13_.idArea as idArea1_30_3_,
        areaauxili13_.activosn as activosn2_30_3_,
        areaauxili13_.claveCDD as claveCDD3_30_3_,
        areaauxili13_.descripcion as descripcion4_30_3_,
        areaauxili13_.idAreaPadre as idAreaPadre5_30_3_,
        areaauxili13_.idInstitucion as idInstitucion10_30_3_,
        areaauxili13_.interoperasn as interoperasn6_30_3_,
        areaauxili13_.siglas as siglas7_30_3_,
        areaauxili13_.titularUsuario as titularUsuario8_30_3_,
        areaauxili13_.titularCargo as titularCargo9_30_3_,
        rutaArea(areaauxili13_.idArea) as formula2_3_,
        institucio14_.idInstitucion as idInstitucion1_72_4_,
        institucio14_.abreviatura as abreviatura2_72_4_,
        institucio14_.activosn as activosn3_72_4_,
        institucio14_.clavecdd as clavecdd4_72_4_,
        institucio14_.descripcion as descripcion5_72_4_,
        institucio14_.endpoint as endpoint6_72_4_,
        institucio14_.interoperasn as interoperasn7_72_4_,
        institucio14_.idTipoInstitucion as idTipoInstitucion8_72_4_,
        institucio14_.uri as uri9_72_4_,
        usuario15_.idusuario as idusuario2_92_5_,
        usuario15_.activosn as activosn1_92_5_,
        usuario15_.idArea as idArea4_92_5_,
        usuario15_.email as email3_92_5_,
        usuario15_.idarea as idarea4_92_5_,
        usuario15_.rfc as rfc5_92_5_,
        usuario15_.idRol as idRol8_92_5_,
        usuario15_.idtipousuario as idtipousuario6_92_5_,
        usuario15_.keyUsuario as keyUsuario7_92_5_,
        usuario15_1_.paterno as paterno7_81_5_,
        usuario15_1_.cargo as cargo2_81_5_,
        usuario15_1_.idarea as idarea8_81_5_,
        usuario15_1_.idTipoRepresentante as idTipoRepresentant4_81_5_,
        usuario15_1_.materno as materno5_81_5_,
        usuario15_1_.nombre as nombre6_81_5_,
        usuario15_2_.prefijo as prefijo1_79_5_,
        usuario15_3_.aceptosn as aceptosn1_91_5_,
        usuario15_3_.capacitadosn as capacitadosn2_91_5_,
        areaaux16_.idArea as idArea1_28_6_,
        areaaux16_.activosn as activosn2_28_6_,
        areaaux16_.descripcion as descripcion3_28_6_,
        areaaux16_.idInstitucion as idInstitucion4_28_6_,
        institucio17_.idInstitucion as idInstitucion1_72_7_,
        institucio17_.abreviatura as abreviatura2_72_7_,
        institucio17_.activosn as activosn3_72_7_,
        institucio17_.clavecdd as clavecdd4_72_7_,
        institucio17_.descripcion as descripcion5_72_7_,
        institucio17_.endpoint as endpoint6_72_7_,
        institucio17_.interoperasn as interoperasn7_72_7_,
        institucio17_.idTipoInstitucion as idTipoInstitucion8_72_7_,
        institucio17_.uri as uri9_72_7_,
        rol18_.idRol as idRol1_84_8_,
        rol18_.activosn as activosn2_84_8_,
        rol18_.atributos as atributos3_84_8_,
        rol18_.descripcion as descripcion4_84_8_,
        rol18_.idArea as idArea5_84_8_,
        rol18_.areaLim as areaLim6_84_8_,
        rol18_.idTipoRol as idTipoRol7_84_8_,
        areapadre19_.idArea as idArea1_31_9_,
        areapadre19_.descripcion as descripcion2_31_9_,
        areapadre19_.idAreaPadre as idAreaPadre3_31_9_,
        areapadre19_.interoperasn as interoperasn4_31_9_,
        areadestin1_.idArea as idArea1_29_10_,
        areadestin1_.activosn as activosn2_29_10_,
        areadestin1_.claveCDD as claveCDD3_29_10_,
        areadestin1_.clave as clave4_29_10_,
        areadestin1_.contentId as contentId5_29_10_,
        areadestin1_.descripcion as descripcion6_29_10_,
        areadestin1_.idAreaPadre as idAreaPadre7_29_10_,
        areadestin1_.idInstitucion as idInstitucion11_29_10_,
        areadestin1_.interoperasn as interoperasn8_29_10_,
        areadestin1_.siglas as siglas9_29_10_,
        areadestin1_.titularUsuario as titularUsuario12_29_10_,
        areadestin1_.titularCargo as titularCargo10_29_10_,
        areadestin1_1_.idAreaPadre as idAreaPadre1_4_10_,
        rutaArea(areadestin1_.idArea) as formula0_10_,
        rutaIdArea(areadestin1_.idArea) as formula1_10_,
        areadestin7_.idInstitucion as idInstitucion1_72_11_,
        areadestin7_.abreviatura as abreviatura2_72_11_,
        areadestin7_.activosn as activosn3_72_11_,
        areadestin7_.clavecdd as clavecdd4_72_11_,
        areadestin7_.descripcion as descripcion5_72_11_,
        areadestin7_.endpoint as endpoint6_72_11_,
        areadestin7_.interoperasn as interoperasn7_72_11_,
        areadestin7_.idTipoInstitucion as idTipoInstitucion8_72_11_,
        areadestin7_.uri as uri9_72_11_,
        areadestin6_.idRepresentante as idRepresentante1_81_12_,
        areadestin6_.idArea as idArea8_81_12_,
        areadestin6_.cargo as cargo2_81_12_,
        areadestin6_.idExterno as idExterno3_81_12_,
        areadestin6_.idTipoRepresentante as idTipoRepresentant4_81_12_,
        areadestin6_.materno as materno5_81_12_,
        areadestin6_.nombre as nombre6_81_12_,
        areadestin6_.paterno as paterno7_81_12_,
        areadestin6_1_.prefijo as prefijo1_79_12_,
        areadestin6_2_.activosn as activosn1_92_12_,
        areadestin6_2_.idRol as idRol8_92_12_,
        areadestin6_.nombre || ' ' || areadestin6_.paterno || ' ' || areadestin6_.materno as formula10_12_,
        asuntocons8_.idAsunto as idAsunto1_37_13_,
        asuntocons8_.area as area2_37_13_,
        asuntocons8_.areaDestino as areaDestino3_37_13_,
        asuntocons8_.areaPadre as areaPadre4_37_13_,
        asuntocons8_.asuntoDescripcion as asuntoDescripcion5_37_13_,
        asuntocons8_.asuntoDescripcionPadre as asuntoDescripcionP6_37_13_,
        asuntocons8_.cargoTitularAreaDestino as cargoTitularAreaDe7_37_13_,
        asuntocons8_.comentario as comentario8_37_13_,
        asuntocons8_.documentosCount as documentosCount9_37_13_,
        asuntocons8_.EtFt as EtFt10_37_13_,
        asuntocons8_.especialsn as especialsn11_37_13_,
        asuntocons8_.fechaAcuse as fechaAcuse12_37_13_,
        asuntocons8_.fechaAcusePadre as fechaAcusePadre13_37_13_,
        asuntocons8_.fechaCompromiso as fechaCompromiso14_37_13_,
        asuntocons8_.fechaCompromisoPadre as fechaCompromisoPa15_37_13_,
        asuntocons8_.fechaElaboracion as fechaElaboracion16_37_13_,
        asuntocons8_.fechaElaboracionPadre as fechaElaboracionP17_37_13_,
        asuntocons8_.fechaEnvio as fechaEnvio18_37_13_,
        asuntocons8_.fechaEnvioPadre as fechaEnvioPadre19_37_13_,
        asuntocons8_.eventoFechaHora as eventoFechaHora20_37_13_,
        asuntocons8_.fechaRegistro as fechaRegistro21_37_13_,
        asuntocons8_.fechaRegistroPadre as fechaRegistroPadr22_37_13_,
        asuntocons8_.firmanteAsunto as firmanteAsunto23_37_13_,
        asuntocons8_.firmanteAsuntoPadre as firmanteAsuntoPad24_37_13_,
        asuntocons8_.firmanteCargo as firmanteCargo25_37_13_,
        asuntocons8_.firmanteCargoPadre as firmanteCargoPadr26_37_13_,
        asuntocons8_.folioArea as folioArea27_37_13_,
        asuntocons8_.folioAreaAsuntoPadre as folioAreaAsuntoPa28_37_13_,
        asuntocons8_.folioIntermedio as folioIntermedio29_37_13_,
        asuntocons8_.idArea as idArea30_37_13_,
        asuntocons8_.idAreaDestino as idAreaDestino31_37_13_,
        asuntocons8_.idAreaPadre as idAreaPadre32_37_13_,
        asuntocons8_.idAsuntoOrigen as idAsuntoOrigen33_37_13_,
        asuntocons8_.idAsuntoPadre as idAsuntoPadre34_37_13_,
        asuntocons8_.idDirigidoA as idDirigidoA35_37_13_,
        asuntocons8_.idEvento as idEvento36_37_13_,
        asuntocons8_.idExpediente as idExpediente37_37_13_,
        asuntocons8_.idFirmante as idFirmante38_37_13_,
        asuntocons8_.idFirmantePadre as idFirmantePadre39_37_13_,
        asuntocons8_.idPromotor as idPromotor40_37_13_,
        asuntocons8_.idPromotorPadre as idPromotorPadre41_37_13_,
        asuntocons8_.idRemitente as idRemitente42_37_13_,
        asuntocons8_.idRemitentePadre as idRemitentePadre43_37_13_,
        asuntocons8_.idSubTema as idSubTema44_37_13_,
        asuntocons8_.idTema as idTema45_37_13_,
        asuntocons8_.idTipoDocumento as idTipoDocumento46_37_13_,
        asuntocons8_.idTipoRegistro as idTipoRegistro47_37_13_,
        asuntocons8_.idTipoRegistroPadre as idTipoRegistroPad48_37_13_,
        asuntocons8_.idTitularAreaDestino as idTitularAreaDest49_37_13_,
        asuntocons8_.idInstruccion as idInstruccion64_37_13_,
        asuntocons8_.maternoTurnadorPadre as maternoTurnadorPa50_37_13_,
        asuntocons8_.nombresTurnadorPadre as nombresTurnadorPa51_37_13_,
        asuntocons8_.numDocto as numDocto52_37_13_,
        asuntocons8_.numDoctoPadre as numDoctoPadre53_37_13_,
        asuntocons8_.palabraClave as palabraClave54_37_13_,
        asuntocons8_.paternoTurnadorPadre as paternoTurnadorPa55_37_13_,
        asuntocons8_.idPrioridad as idPrioridad65_37_13_,
        asuntocons8_.promotor as promotor56_37_13_,
        asuntocons8_.promotorAbreviaturaPadre as promotorAbreviatu57_37_13_,
        asuntocons8_.promotorPadre as promotorPadre58_37_13_,
        asuntocons8_.remitente as remitente59_37_13_,
        asuntocons8_.remitentePadre as remitentePadre60_37_13_,
        asuntocons8_.idEstatusAsunto as idEstatusAsunto66_37_13_,
        asuntocons8_.idEstatusAsuntoPadre as idEstatusAsuntoPa67_37_13_,
        asuntocons8_.idEstatusTurno as idEstatusTurno68_37_13_,
        asuntocons8_.idTipoAsunto as idTipoAsunto61_37_13_,
        asuntocons8_.idTipoAsuntoPadre as idTipoAsuntoPadre62_37_13_,
        asuntocons8_.titularAreaDestino as titularAreaDestin63_37_13_,
        tipoinstru24_.IDINSTRUCCION as IDINSTRUCCION1_22_14_,
        tipoinstru24_.ACTIVOSN as ACTIVOSN2_22_14_,
        tipoinstru24_.idArea as idArea5_22_14_,
        tipoinstru24_.DESCRIPCION as DESCRIPCION3_22_14_,
        tipoinstru24_.REQRESPSN as REQRESPSN4_22_14_,
        areaauxili25_.idArea as idArea1_30_15_,
        areaauxili25_.activosn as activosn2_30_15_,
        areaauxili25_.claveCDD as claveCDD3_30_15_,
        areaauxili25_.descripcion as descripcion4_30_15_,
        areaauxili25_.idAreaPadre as idAreaPadre5_30_15_,
        areaauxili25_.idInstitucion as idInstitucion10_30_15_,
        areaauxili25_.interoperasn as interoperasn6_30_15_,
        areaauxili25_.siglas as siglas7_30_15_,
        areaauxili25_.titularUsuario as titularUsuario8_30_15_,
        areaauxili25_.titularCargo as titularCargo9_30_15_,
        rutaArea(areaauxili25_.idArea) as formula2_15_,
        tipopriori26_.idPrioridad as idPrioridad1_89_16_,
        tipopriori26_.activosn as activosn2_89_16_,
        tipopriori26_.idArea as idArea5_89_16_,
        tipopriori26_.descripcion as descripcion3_89_16_,
        tipopriori26_.dias as dias4_89_16_,
        areaauxili27_.idArea as idArea1_30_17_,
        areaauxili27_.activosn as activosn2_30_17_,
        areaauxili27_.claveCDD as claveCDD3_30_17_,
        areaauxili27_.descripcion as descripcion4_30_17_,
        areaauxili27_.idAreaPadre as idAreaPadre5_30_17_,
        areaauxili27_.idInstitucion as idInstitucion10_30_17_,
        areaauxili27_.interoperasn as interoperasn6_30_17_,
        areaauxili27_.siglas as siglas7_30_17_,
        areaauxili27_.titularUsuario as titularUsuario8_30_17_,
        areaauxili27_.titularCargo as titularCargo9_30_17_,
        rutaArea(areaauxili27_.idArea) as formula2_17_,
        status28_.idEstado as idEstado1_55_18_,
        status28_.descripcion as descripcion2_55_18_,
        status29_.idEstado as idEstado1_55_19_,
        status29_.descripcion as descripcion2_55_19_,
        status30_.idEstado as idEstado1_55_20_,
        status30_.descripcion as descripcion2_55_20_,
        empresa31_.idEmpresa as idEmpresa1_54_21_,
        empresa31_.contentId as contentId2_54_21_,
        empresa31_.nombre as nombre3_54_21_,
        empresa31_.rfc as rfc4_54_21_,
        domicilio32_.idOrigen as idOrigen1_54_27_,
        domicilio32_.calleNumero as calleNumero2_53_27_,
        domicilio32_.colonia as colonia3_53_27_,
        domicilio32_.cp as cp4_53_27_,
        domicilio32_.delegacion as delegacion5_53_27_,
        domicilio32_.idTipoOrigen as idTipoOrigen6_53_27_,
        domicilio32_.identidad as identidad7_53_27_,
        domicilio32_.telefono as telefono8_53_27_,
        entidad33_.identidad as identidad1_8_22_,
        entidad33_.abreviatura as abreviatura2_8_22_,
        entidad33_.descripcion as descripcion3_8_22_,
        status2_.idEstado as idEstado1_55_23_,
        status2_.descripcion as descripcion2_55_23_,
        tiporespue35_.idTiposRespuesta as idTiposRespuesta1_90_24_,
        tiporespue35_.descripcion as descripcion2_90_24_,
        tiporespue35_.infomex as infomex3_90_24_,
        tiporespue35_.tipoconcluidosn as tipoconcluidosn4_90_24_ 
    from
        respuestas this_ 
    left outer join
        areas area3_ 
            on this_.idArea=area3_.idArea 
    left outer join
        AreasPadresOnly area3_1_ 
            on area3_.idArea=area3_1_.idArea 
    left outer join
        instituciones institucio5_ 
            on area3_.idInstitucion=institucio5_.idInstitucion 
    left outer join
        representantes titular4_ 
            on area3_.titularUsuario=titular4_.idRepresentante 
    left outer join
        prefijoUsuarios titular4_1_ 
            on titular4_.idRepresentante=titular4_1_.idRepresentante 
    left outer join
        usuarios titular4_2_ 
            on titular4_.idRepresentante=titular4_2_.idUsuario 
    left outer join
        areasAuxiliar areaauxili13_ 
            on titular4_.idArea=areaauxili13_.idArea 
    left outer join
        instituciones institucio14_ 
            on areaauxili13_.idInstitucion=institucio14_.idInstitucion 
    left outer join
        usuarios usuario15_ 
            on titular4_.idRepresentante=usuario15_.idusuario 
    left outer join
        representantes usuario15_1_ 
            on usuario15_.idusuario=usuario15_1_.idrepresentante 
    left outer join
        prefijoUsuarios usuario15_2_ 
            on usuario15_.idusuario=usuario15_2_.idRepresentante 
    left outer join
        userCapacita usuario15_3_ 
            on usuario15_.idusuario=usuario15_3_.userName 
    left outer join
        areaAux areaaux16_ 
            on usuario15_.idArea=areaaux16_.idArea 
    left outer join
        instituciones institucio17_ 
            on areaaux16_.idInstitucion=institucio17_.idInstitucion 
    left outer join
        roles rol18_ 
            on usuario15_.idRol=rol18_.idRol 
    left outer join
        areasPadre areapadre19_ 
            on area3_1_.idAreaPadre=areapadre19_.idArea 
    left outer join
        areas areadestin1_ 
            on this_.idAreaDestino=areadestin1_.idArea 
    left outer join
        AreasPadresOnly areadestin1_1_ 
            on areadestin1_.idArea=areadestin1_1_.idArea 
    left outer join
        instituciones areadestin7_ 
            on areadestin1_.idInstitucion=areadestin7_.idInstitucion 
    left outer join
        representantes areadestin6_ 
            on areadestin1_.titularUsuario=areadestin6_.idRepresentante 
    left outer join
        prefijoUsuarios areadestin6_1_ 
            on areadestin6_.idRepresentante=areadestin6_1_.idRepresentante 
    left outer join
        usuarios areadestin6_2_ 
            on areadestin6_.idRepresentante=areadestin6_2_.idUsuario 
    left outer join
        asuntoconsultar asuntocons8_ 
            on this_.idAsunto=asuntocons8_.idAsunto 
    left outer join
        TIPOSINSTRUCCION tipoinstru24_ 
            on asuntocons8_.idInstruccion=tipoinstru24_.IDINSTRUCCION 
    left outer join
        areasAuxiliar areaauxili25_ 
            on tipoinstru24_.idArea=areaauxili25_.idArea 
    left outer join
        tiposPrioridad tipopriori26_ 
            on asuntocons8_.idPrioridad=tipopriori26_.idPrioridad 
    left outer join
        areasAuxiliar areaauxili27_ 
            on tipopriori26_.idArea=areaauxili27_.idArea 
    left outer join
        estados status28_ 
            on asuntocons8_.idEstatusAsunto=status28_.idEstado 
    left outer join
        estados status29_ 
            on asuntocons8_.idEstatusAsuntoPadre=status29_.idEstado 
    left outer join
        estados status30_ 
            on asuntocons8_.idEstatusTurno=status30_.idEstado 
    left outer join
        empresas empresa31_ 
            on this_.idAreaDestino=empresa31_.idEmpresa 
    left outer join
        domicilios domicilio32_ 
            on empresa31_.idEmpresa=domicilio32_.idOrigen 
            and (
                domicilio32_.idtipoorigen = 'E'
            )  
    left outer join
        Entidades entidad33_ 
            on domicilio32_.identidad=entidad33_.identidad 
    left outer join
        estados status2_ 
            on this_.idEstatusRespuesta=status2_.idEstado 
    inner join
        tiposRespuesta2 tiporespue35_ 
            on this_.idTipoRespuesta=tiporespue35_.idTiposRespuesta 
    where
        status2_.idEstado in (
          0
        ) 
        and this_.idAsunto in (
            select
                a_.idAsunto as y0_ 
            from
                Asuntos a_ 
            left outer join
                asuntosCorrespondencia a_1_ 
                    on a_.idAsunto=a_1_.idAsunto 
            where
                not (a_.idTipoAsunto='A') 
                and a_.idAsunto=this_.idAsunto
        ) 
    order by
        this_.fechaRegistro desc 
        ) 
    where
        rownum <= 1;
0

There are 0 best solutions below