Estou criando um relatório no iReport, no qual a conexão é feita através do hibernate. Até ai tudo ok.
Preciso executar uma query onde utilizo o “left join”.
Testei a query (em sql) no banco e funcionou direitinho.
O meu grande problema é “traduzí-la” para HQL por causa do uso do “left join”.
Segue a query em sql:
select *
from ocorrencia a
left join obs b on b.validacao = true and a.funcionario_id = b.funcionario_id, saldo s
where a.funcionario_id = s.funcionario_id
and s.mes_ano = "02/2008"
and a.empresa_id = 11
order by a.funcionario_id, a.data
cara vou te dar um exemplo pra ve se clareia ae pra você
public class Curso {
private String descricao;
private String nome;
private Set disciplinas;
private Integer id;
...
}
public class Disciplina {
private String nome;
private String ementa;
private Set turmas;
private Curso curso;
private Integer id;
...
}
agora o exemplo que te interessa:
from Curso curso
left join fetch curso.disciplinas
where curso.nome = :nome
Explicação:
Adicionou-se left join fetch a consulta e depois indicou-se a coleção que deveria
ser inicializada, neste caso curso.disciplinas Deste modo, quando a busca for
executada, vai retornar os objetos Curso com as suas respectivas Disciplinas instanciadas.
Tirei esse exemplo de um tutorial que tenho aqui. Se precisar só falar!
[quote=rafael_ra]cara vou te dar um exemplo pra ve se clareia ae pra você
public class Curso {
private String descricao;
private String nome;
private Set disciplinas;
private Integer id;
...
}
public class Disciplina {
private String nome;
private String ementa;
private Set turmas;
private Curso curso;
private Integer id;
...
}
agora o exemplo que te interessa:
from Curso curso
left join fetch curso.disciplinas
where curso.nome = :nome
Explicação:
Adicionou-se left join fetch a consulta e depois indicou-se a coleção que deveria
ser inicializada, neste caso curso.disciplinas Deste modo, quando a busca for
executada, vai retornar os objetos Curso com as suas respectivas Disciplinas instanciadas.
Tirei esse exemplo de um tutorial que tenho aqui. Se precisar só falar![/quote]
Olá Rafael,
Entendi +/-, mas não consigo enxergar uma luz para o meu caso.
No meu caso eu tenho uma tabela ocorrencia e uma tabela obs.
Para cada registro na tabela ocorrencia, poderá existir (ou não) um ou mais registros da tabela obs.
E outra coisa, na minha classe ocorrencia eu não tenho uma coleção de obs, eu fiz ao contrário.
Ou seja, na minha classe obs existe um atributo da classe ocorrencia.
O meu problema teve início quando eu tentava executar a query (hql) no iReport, ele não reconhece o termo “left”.