16/12/2009, 09:55
|
| | Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 21 años, 5 meses Puntos: 0 | |
Respuesta: Por qué EJBQL elimina paréntesis?? Lo que muestra el LOG de hibernate es lo siguiente. Como ejemplo, pongo en rojo uno de los AND, se puede ver perfectamente como ha eliminado paréntesis y no sólo eso, sino que también ha añadido paréntesis en el exist, también en rojo:
select
pliegosfac2_.PYFID as col_0_0_, pliegosfac2_.PYFFHORAMOD as col_1_0_, pliegosfac2_.PYFTIPODOCU as col_2_0_, pliegosfac2_.PYFSUBTIPO as
col_3_0_, pliegosfac2_.PYFNUMCARGO as col_4_0_, pliegosfac2_.PYFPERIODO as col_5_0_, pliegosfac2_.PYFFDOCU as col_6_0_, pliegosfac2_.PYFPERFDESDE
as col_7_0_, pliegosfac2_.PYFPERFHASTA as col_8_0_, pliegosfac2_.PYFNOAPREMIABLE as col_9_0_, pliegosfac2_.ORMID as col_10_0_, organismos1_.ORMDESC
as col_11_0_, pliegosfac2_.ORG_ORMID as col_12_0_, organismos0_.ORMDESC as col_13_0_, pliegosfac2_.PYFDOCCONTABLE as col_14_0_,
pliegosfac2_.PYFFVALIDA as col_15_0_, pliegosfac2_.PYFORIGEN as col_16_0_, pliegosfac2_.PYFPERIODO as col_17_0_, pliegosfac2_.PYFXESTADO as
col_18_0_
from
ORGANISMOS organismos0_, ORGANISMOS organismos1_, PLIEGOSFACTURAS pliegosfac2_
where
pliegosfac2_.ORMID=organismos1_.ORMID and pliegosfac2_.ORG_ORMID=organismos0_.ORMID and
(pliegosfac2_.PYFID in (select pliegosfac2_.PYFID from LIQUIDACIONES liquidacio3_, DETALLEPLIEGOSFRAS detallepli4_ where
detallepli4_.LIQID=liquidacio3_.LIQID and liquidacio3_.LIQNUMERORECLIQUIDACION='200000241013 ')) and
(pliegosfac2_.PYFTIPODOCU='P' and pliegosfac2_.PYFSUBTIPO='P' and pliegosfac2_.PYFPERIODO='V' and (exists (select '1' from LIQUIDACIONES liquidacio5_, DETALLEPLIEGOSFRAS detallepli6_ where detallepli6_.PYFID=pliegosfac2_.PYFID and
liquidacio5_.LIQID=detallepli6_.LIQID and liquidacio5_.LIQNUMERORECLIQSUFIJO=0))
or
pliegosfac2_.PYFTIPODOCU='P' and pliegosfac2_.PYFSUBTIPO='P' and pliegosfac2_.PYFPERIODO='E' and
(exists (select '1' from DETALLEPLIEGOSFRAS detallepli7_ where detallepli7_.PYFID=pliegosfac2_.PYFID and detallepli7_.FEXID=3))
or
pliegosfac2_.PYFTIPODOCU='F' and pliegosfac2_.PYFSUBTIPO='B'
or
pliegosfac2_.PYFTIPODOCU='P' and pliegosfac2_.PYFSUBTIPO='P' and pliegosfac2_.PYFPERIODO='E' and
(exists (select '1' from DETALLEPLIEGOSFRAS detallepli8_ where detallepli8_.PYFID=pliegosfac2_.PYFID and detallepli8_.FEXID<>3 and
pliegosfac2_.PYFNUMCARGO<200600000000 and pliegosfac2_.ORMID<>pliegosfac2_.ORG_ORMID))
or
pliegosfac2_.PYFTIPODOCU='P' and pliegosfac2_.PYFSUBTIPO='P' and pliegosfac2_.PYFPERIODO='V' and (exists
(select '1' from LIQUIDACIONES liquidacio9_, DETALLEPLIEGOSFRAS detallepli10_ where detallepli10_.PYFID=pliegosfac2_.PYFID and
liquidacio9_.LIQID=detallepli10_.LIQID and liquidacio9_.LIQNUMERORECLIQSUFIJO<>0 and pliegosfac2_.ORMID<>2 and
pliegosfac2_.PYFNUMCARGO<200600000000))
or
pliegosfac2_.PYFTIPODOCU='F' and pliegosfac2_.PYFSUBTIPO='R'
or
pliegosfac2_.PYFTIPODOCU='F' and pliegosfac2_.PYFSUBTIPO='I'
or
pliegosfac2_.PYFTIPODOCU='F' and pliegosfac2_.PYFSUBTIPO='C'
and (pliegosfac2_.PYFNUMCARGO<200600000000 and pliegosfac2_.ORG_ORMID=2 or pliegosfac2_.ORG_ORMID<>2)
or
pliegosfac2_.PYFTIPODOCU='F' and pliegosfac2_.PYFSUBTIPO='P')
and (pliegosfac2_.ORG_ORMID=3 or pliegosfac2_.ORMID=3 or exists (select '1' from EXACCIONES exacciones11_, DETALLEPLIEGOSFRAS detallepli12_
where detallepli12_.PYFID=pliegosfac2_.PYFID and detallepli12_.MEXID=exacciones11_.MEXID and exacciones11_.ORG_ORMID=3)) |