Fórum hql left join problema #444218
28/05/2013
0
bom dia,
tenho um relacionamento A e B.
caso eu faça o hql abaixo funciona certo
caso eu faça
ai vem o primeiro problema como a tabela que esta left join tambem esta no where, digamos que ela acaba virando inner.
porem eu quero trazer todos os A e o B se for só igual ativo 'T'
descobri a clausa WITH ate funciona a ideia, hibernate mostra sql certo, fica assim
porem se eu faço a.getBe, ele roda o sql so pro B pq esta lazy, porem sem o filtro do ativo
se eu fazer o hql assim
teoricamente funciona, vou transformar o B em fetch nessa execucao.
so que o hibernate reclama fala que clausa wtih nao pode ter fetch, mensagem nativa
with-clause not allowed on fetched associations use filters
tentei usar os filters mais ele sempre joga no where tambem não rola
Alguem tem ideia com eu filtro um atributo filho que não mate todos os registros do pai.
tenho um relacionamento A e B.
public class A{
private Long id
@OneToOne( fetch=FetchType.LAZY)
@JoinColumn(name="tb_B_id")
private B be;
/* setters getters*/
}
public class B{
private Long id
private String ativo;
/* setters getters*/
}
caso eu faça o hql abaixo funciona certo
"from A a left join a.be b "
caso eu faça
"from A a left join a.be b where b.ativo='T'"
ai vem o primeiro problema como a tabela que esta left join tambem esta no where, digamos que ela acaba virando inner.
porem eu quero trazer todos os A e o B se for só igual ativo 'T'
descobri a clausa WITH ate funciona a ideia, hibernate mostra sql certo, fica assim
"from A a left join a.be b with b.ativo='T' "
porem se eu faço a.getBe, ele roda o sql so pro B pq esta lazy, porem sem o filtro do ativo
se eu fazer o hql assim
"from A a left join fetch a.be b with b.ativo='T' "
teoricamente funciona, vou transformar o B em fetch nessa execucao.
so que o hibernate reclama fala que clausa wtih nao pode ter fetch, mensagem nativa
with-clause not allowed on fetched associations use filters
tentei usar os filters mais ele sempre joga no where tambem não rola
Alguem tem ideia com eu filtro um atributo filho que não mate todos os registros do pai.
Fabio Castro
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)