CreateCriteria aninhados

1 resposta
camilaoc

Galerinha,

Estou com um grande problemas que está me deixando com dor de cabeça. Sou iniciante no Hibernate e devido a isso os problemas parecem maiores. Bem, estou tentando fazer uma consulta utilizando CreateCriteria. A consulta é:

session.CreateCriteria(typeof(PeriodoFerias))
                    .CreateCriteria("Ferias")
                        .CreateCriteria("Colaborador")
                            .Add(Restrictions.Eq("Id", idColaborador))
                        .CreateCriteria("PeriodoAquisitivo")
                             .Add(Restrictions.Eq("Id", idPeriodoAquisitivo))
           .List();

Os relacionamentos são:
Ferias X PeriodoFerias - one-to-many
Ferias X Colaborador - many-to-one
Ferias X PeriodoAquisitivo - many-to-one

O problema é q não consigo aninhar Ferias com PeriodoAquisitivo. E eu tenho como dados iniciais da minha consulta o idColaborador e o idPeriodoAquisiitivo.

Eu preciso fazer uma consulta como esta:

SELECT p.id AS Id
FROM periodo_ferias AS p, ferias AS f, colaborador AS m, periodo_aquisitivo AS pa
WHERE p.ferias_id = f.id
AND f.colaborador_id = m.id
AND pa.id = f.periodo_aquisitivo_id
AND f.colaborador_id = @idColaborador
AND f.periodo_aquisitivo_id =@idPeriodoAquisitivo

Alguém pode ajudar?

1 Resposta

marcelo.bellissimo

Como estão mapeadas as suas classes? Pelo que eu entendi, acho que ficaria algo como:

Criteria criteriaPeriodoFerias = session.createCriteria(PeriodoFerias.class); criteriaPeriodoFerias.createCriteria("ferias") .add(Restrictions.eq("id", idColaborador)) .createCriteria("periodoAquisitivo") .add(Restrictions.eq("id", idPeriodoAquisitivo)) .list();

Mas mande os seus mapeamentos, ai dá pra responder com mais certeza…

Criado 30 de janeiro de 2010
Ultima resposta 1 de fev. de 2010
Respostas 1
Participantes 2