Eu estou tentando fazer a seguinte consulta usando criteria
select *
from usuario u
where u.idUsuario in (select idUsuario
from UsuarioBackOffice
where loginAlternativo = '46991782000179 ')
or u.idUsuario in (select idUsuario
from UsuarioCorporate
where loginAlternativo = '46991782000179 ')
or u.idUsuario in (select idUsuario
from UsuarioPrestador
where loginAlternativo = '46991782000179 ')
A minha criteria é a seguinte
[code]DetachedCriteria backoffice = DetachedCriteria.forClass(UsuarioBackOffice.class)
.setProjection(Property.forName(UsuarioBackOffice.PROP_idUsuario))
.add(Restrictions.eq(UsuarioBackOffice.PROP_loginAlternativo, login));
DetachedCriteria corporate = DetachedCriteria.forClass(UsuarioCorporate.class)
.setProjection(Property.forName(UsuarioCorporate.PROP_idUsuario))
.add(Restrictions.eq(UsuarioCorporate.PROP_loginAlternativo, login));
DetachedCriteria prestador = DetachedCriteria.forClass(UsuarioPrestador.class)
.setProjection(Property.forName(UsuarioPrestador.PROP_idUsuario))
.add(Restrictions.eq(UsuarioPrestador.PROP_loginAlternativo, login));
try {
Session hSession = HibernateUtil.getSession();
Criteria criteria = hSession.createCriteria(Usuario.class);
Criteria criteria = hSession.createCriteria(Usuario.class);
criteria.add(Property.forName(Usuario.PROP_idUsuario).in(backoffice));
criteria.add(Restrictions.or(Property.forName(Usuario.PROP_idUsuario).in(backoffice), Property.forName(Usuario.PROP_idUsuario).in(prestador)));[/code]
Só que esta me retornando a seguinte consulta
select *
from USUARIO this_
where this_.idUsuario in (select this_.idUsuario as y0_
from MLPS_VIEW_USUARIOBACKOFFICE this_
where this_.loginAlternativo='admin ')
and ( this_.idUsuario in (select this_.idUsuario as y0_
from MLPS_VIEW_USUARIOCORPORATE this_
where this_.loginAlternativo='admin ')
or this_.idUsuario in (select this_.idUsuario as y0_
from MLPS_VIEW_USUARIOPRESTADOR this_
where this_.loginAlternativo='admin '))
Como eu faço para em vez de adicionar esse ‘and (’ adicionar simplesmente or?
Tentei usar o Restrictions.or mas ele me limita a só duas consultas.
Como faço essa consulta?
Muito Obrigado