insira seu código aqui
Eu estou tentando fazer essa query aqui usando as ferramentas do hibernate:
SELECT c.CMDALCCODG, c.CCREDECODG, c.DCREDEDTCR, c.DCREDEDTCN, c.CTPTXIORIG, c.CTPTXITIPO,c.XCREDEOBSE
FROM SCTR.TBCREDENCIALCTTU c, SCTR.TBCREDENCIALXVEICULO cv1
WHERE c.CMDALCCODG = cv1.CMDALCCODG AND
c.CCREDECODG = cv1.CCREDECODG AND
cv1.CMDALCCODG = 2 AND
c.DCREDEDTCN IS NULL AND
NOT EXISTS (SELECT cv2.AVECLOSEQU
FROM SCTR.TBCREDENCIALXVEICULO cv2
WHERE cv2.DCREVCDTFV IS NULL AND
cv2.CMDALCCODG = 2 AND
cv2.CCREDECODG = cv1.CCREDECODG)
ORDER BY 2
Esse daqui é o código atual no hibernate
criteria.createAlias("veiculosCredencial", "veiculoCredencialAlias");
criteria.add(Restrictions.isNull("cancelamentoCredencial"));
DetachedCriteria subcriteria = DetachedCriteria.forClass(CredencialXVeiculo.class, "cv");
subcriteria.add(Restrictions.eq("cv.credencialXVeiculoPK.credencialCttuPK.modal", filtro.getModalEquals()));
subcriteria.add(Restrictions.isNull("cv.fimVinculo"));
subcriteria.add(Property.forName("cv.credencialXVeiculoPK.CredencialCttuPK.id").eqProperty("veiculoCredencialAlias.credencialAlias.credencialXVeiculoPK.CredencialCttuPK.id") );
subcriteria.setProjection(Projections.property("cv.credencialXVeiculoPK.credencialCttuPK"));
criteria.add(Subqueries.notExists(subcriteria));
Entretanto, aparece a seguinte exceção:
org.hibernate.HibernateException: Unknown entity: null - Does not recognize criteria alias within subcriteria
Percebi que o a única falha que não permite traduzir a query original para o hibernate é a linha:
subcriteria.add(Property.forName("cv.credencialXVeiculoPK.CredencialCttuPK.id").eqProperty("veiculoCredencialAlias.credencialAlias.credencialXVeiculoPK.CredencialCttuPK.id") );
Parece que, dessa forma, o subcriteria não consegue "entender" o alias que foi criado dentro do criteria. Esse passo é fundamental, pois ele represantaria o trecho " cv2.CCREDECODG = cv1.CCREDECODG"
Alguém faz ideia de como eu faço isso corretamente no Hibernate?
Já procurei em vários locais, mas sem sucesso.
Agradeço desde já.