Hibernate Criteria.... Duvida crual, list

tenho a seguinte relação…

Pessoa 1 - N Evento

preciso listar os Eventos por pessoa fisica…

seria algo como…

session.criteriaCriteria(Evento.class)
.add( //restrições de cpf da pessoa)
.list();

Eu sei fazer por HQL, que seria algo como:

“SELECT OBJECT(o) from EventoParticipante as ep, Evento as o WHERE ep.evento = o AND ep.participante = :pessoaFisica”

como fazer isso por hibernate?

E ai blz…

Se entendi direito deve se algo como o código a seguir, qualquer coisa posta mais detalhes.

getSession() .createCriteria(Evento.class) .add(Restrictions.like("evento","cpf") .createCriteria("pessoa") .list();

Não, c não entendeu bem… ^^

evento não tem referencia a PessoaFisica…

EventoParticipante que tem uma referencia a Evento e a Pessoa Fisica…

então eu preciso pegar os Eventos, desta lista de EventoParticipante onde a pessoaFisica tem o cpf = ao enviado

Coloca a classe Pessoa e Evento dai da pra netende melhor…

[code]PessoaFisica {
private String cpf;
}

Evento {

}

EventoParticipante {
private Evento evento;
private PessoaFisica participante;
}[/code]

Ps.: a classe não é só isso, tem mais coisa logicamente, o EventoParticipante não pode ser apenas uma relação N-M pois há mais de informações na relação, o banco é legado e não pode ser mudado, apenas quero montar um criteria, pois o HQL ta montando uma SQL muito ruim, e fazendo varios selects pra montar a bagaça

Eu quero a lista de todos os Eventos onde há participantes com o cpf passado…

ou seja… em HQL é

SELECT evento FROM EventoParticipante as eventoInscricao, Evento as evento WHERE eventoInscricao.evento = evento AND eventoInscricao.participante = :pessoaFisica

getSession()
.createCriteria(Evento.class)
.createCriteria("eventoparticipante")
.createCriteria("participante")
.add(Restrictions.like("cpf","variavel do cpf")
.list();

Tem que verificar os nome das tabelas, coloque conforme vc fez no hibernate. A ideia da Criteria é ir navegando entre as tabelas, e aplicar a restrição onde vc deseja. Aguardo resultados… :wink:

Conseguiu resolve?

Nop, não funciona… assim…
=/

Evento não tem um eventoparticipante, não existe essa relação…

o que existe é:

EventoParticipante tem um Evento
EventoParticipante tem um Participante

e nessa relação, eu preciso da lista de evnetos de um participante…