Buscar dados em uma coleção dentro de um relacionamento OneToOne HQL

1 resposta
GabrielCardelli

Opa pessoal, beleza?

Estou com um problema que não estou conseguindo resolver, caso alguem possa dar um help agradeço:

tenho 3 classes:

Arquivo
Disciplina
Curso

public class Arquivo {


	@OneToOne
	private Disciplina disciplina;

}

public class Disciplina {

  @ManyToMany(
        cascade=CascadeType.ALL,
    )
	public List<Curso> cursos;

}

public class Curso {

@ManyToMany(
	        cascade=CascadeType.ALL,
	     ) 
	    @JoinTable (name="DisciplinaCurso",
	            joinColumns={@JoinColumn(name="curso_id")},
	            inverseJoinColumns={@JoinColumn(name="disciplina_id")}
	            )
	public List<Disciplina> disciplinas; 

}

Gostaria de pegar todos os arquivos relacionados a um curso, abaixo segue meu HQL

String hqlQuery = "SELECT arquivo FROM Arquivo arquivo, IN(arquivo.disciplina.cursos) curso WHERE ";
hqlQuery = hqlQuery + "curso.id = " + curso;
Isso não está me trazendo nada.

o Banco possui dados.

Alguem pode me ajudar?

Abraço

1 Resposta

danieldomingues86

Olá,

Voce pode simplesmente fazer um find() retornando um objeto Curso, aí dele voce faz um get Disciplinas onde o fetch já será feito pra voce e mais um get para retornar o Arquivo

Aí voce saberá quais os arquivos desse curso.

Abraços
Daniel

Criado 6 de fevereiro de 2011
Ultima resposta 6 de fev. de 2011
Respostas 1
Participantes 2