Hibernate - INNER JOIN COM CRITERIA OU HQL EM RELACIONAMENTO MANYTOMANY

4 respostas
A

Pessoal,

Minha dúvida provavelmente deve ser simples, porem tenho pouco tempo para uma maior pesquisa no google ou na documentação do hibernate.

Vamos ao que interessa:

Possuo um relacionamento n:m unidirecional utilizando anotações, agora preciso recuperar os objetos atraves de uma consulta passando um objeto.

Exemplo: o relacionamento entre livros e autores, pretendo recuperar os livros de um autor ou os autores de um livro.

Obrigado.

4 Respostas

Guevara

Veja se é isto:
Pegando titulo e editora de um autor:

@SuppressWarnings("unchecked")
	public List<Livro> lista(Long idAutor) { 		
		return session.createCriteria(Livro.class, "l")
		.setProjection(Projections.projectionList()
				.add( Projections.property("l.titulo").as("titulo") )
				.add( Projections.property("l.editora").as("editora") )
				).setResultTransformer(new AliasToBeanResultTransformer(Livro.class))
				.add(Restrictions.idEq(idAutor))
				.setMaxResults(10).list();
    }

obs: um livro só pode pertencer a um autor, então eu vejo um relacionamento @OneToMany, um autor pode ter vários livros e um livro só pode pertencer(ser escrito) por um autor.
Abraço!

A

Guevara,

Valeu a dica, nao sabia fazer @OneToMany, mas infelizmente minhas tabelas estão @ManyToMany.

t+

Guevara

Esqueci de um detalhe, existem livros que são escritos por mais de um autor, ai a coisa muda de figura. Fica sendo um @ManyToMany mesmo, mas a consulta vc poderia fazer com o que eu postei mesmo, pegando pela ID do autor ou talvez por um código inserido na hora do cadastro do autor.

A

Vou testar!

Obrigado.

Criado 11 de maio de 2010
Ultima resposta 11 de mai. de 2010
Respostas 4
Participantes 2