| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2010 12:41:22
|
boneazul
JavaGuru
Membro desde: 29/10/2007 17:13:59
Mensagens: 246
Offline
|
Pessoal to quebrando a cabeça aqui usando um HQL deve ser coisa facil mas nao to conseguindo fazer funcionar...
Tenho duas Classes Pai -> Filho 1 pai pode ter varios filhos, so que estou trabalhando com delecao logica , ou seja, tenho uma coluna ativo que é marcada como não,
so que não to conseguindo fazer um query que so traga os ativos , estou tentando
classe Pai
classe Filho
Alguem poderia me ajudar??
This message was edited 2 times. Last update was at 05/03/2010 01:09:33
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2010 13:59:49
|
vinicius.martinez
JavaBaby
Membro desde: 03/07/2009 14:31:42
Mensagens: 94
Offline
|
O left join trás todos os registros , relacionados ou não..
Usa o inner join (join simples)
|
KISS - Keep It SIMPLE, STUPID! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2010 14:04:19
|
fbcarvalho
Thread.start()
Membro desde: 04/02/2010 12:20:54
Mensagens: 30
Localização: Belém - PA
Offline
|
Mas essa sua query está trazendo todos ou nenhum dos itens ativos? Você poderia postar mais detalhes do mapeamento (tipo do atributo ativo, etc...)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2010 14:12:33
|
vinicius.martinez
JavaBaby
Membro desde: 03/07/2009 14:31:42
Mensagens: 94
Offline
|
Troque isso:
Por isso:
|
KISS - Keep It SIMPLE, STUPID! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2010 20:58:39
|
boneazul
JavaGuru
Membro desde: 29/10/2007 17:13:59
Mensagens: 246
Offline
|
vinicius.martinez wrote:Troque isso:
Por isso:
Oww rapaz funcionou era isso mesmo!! Brigadão pela ajuda!!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2010 01:23:05
|
boneazul
JavaGuru
Membro desde: 29/10/2007 17:13:59
Mensagens: 246
Offline
|
Putz essa query ta ficando cada veis mais nervosa a resposta de cima funcionou beleza so que tem mais uma classe ainda que eu preciso ordenar os resultados
porque ainda 1 filho pode ter varios brinquedos e cada um tem a ordem em que eles devem ser guardados ai tentei continuar a query utilizando abaixo.
Mas dai levei uma exception na cara..
Exception in thread "main" org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
Alguem se habilita?? Sou novo no uso de hibernate e to me enroscando bastante com relacionamento...
Vo postar as classes pra ver se alguem me ajuda
Basicamente preciso de um select da classe principal pai em que ele busque todos os filhos ativos e todos os brinquedos ativo ordenados pela ordem em que são guardados..
Pq vo correr dentro dele
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2010 21:32:37
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
Ve q cuticuti fazendo com criteria...
easy way em ?
agora com comentarios...
This message was edited 2 times. Last update was at 05/03/2010 21:36:13
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2010 13:52:20
|
boneazul
JavaGuru
Membro desde: 29/10/2007 17:13:59
Mensagens: 246
Offline
|
Lavieri wrote:Ve q cuticuti fazendo com criteria...
easy way em ?
agora com comentarios...
Mas mesmo assim ainda ta faltando coisa nessa criteria...
Ainda faltou relacionar filho com brinquedos ativos ordenados pela ordem..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2010 19:24:36
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
.addOrder(Order.asc("nome da propriedade" )
vc pode inclusve adicionar várias ordens...
Obs.... se o que vc quer, é que a lista de Filha -> Neto seja ordenado, vc pode fazer assim
This message was edited 1 time. Last update was at 06/03/2010 19:48:46
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 01:05:01
|
boneazul
JavaGuru
Membro desde: 29/10/2007 17:13:59
Mensagens: 246
Offline
|
Lavieri wrote:.addOrder(Order.asc("nome da propriedade"  )
vc pode inclusve adicionar várias ordens...
Obs.... se o que vc quer, é que a lista de Filha -> Neto seja ordenado, vc pode fazer assim
Humm agora foi em lavieri a solucao era esse ordem na collection mesmo..brigadão pela ajuda..
Se sabe me explicar porque o hibernate nao faz 2 fetch inner join...pois parece ser algo tão normal..
1 Pai -> N Filho ---- 1 Filho -> N Brinquedos
Outra coisa estranha que não entendi... porque eu preciso usar esse fetch pra falar pra eles colocar dentro das classes o que foi passado na query...
A query em si ja não bastaria ? Ele nao teria de popular de acordo com a query realizada??
Por exemplo :
Porque ele nao aceita isso ?? Quando eu usava um framework ORM pra php no caso eu passa o HQL e ele populava as classes certinho de acordo com a query passada...
Não entendi muito bem qual a do hibernate em relação a isso e porque preciso dos fetch e porque ele nao aceita 2 fetch na mesma query...
Alguem saberia me explicar??
This message was edited 1 time. Last update was at 08/03/2010 01:17:34
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 01:54:11
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
O Hibernate não aceito duplos fechs....
isso é uma regra dele... ele não popula 2 relacionamentos diferentes de 1 pra muitos....
o motivo real disso eu não sei...
a saber:
popular 1-N é bem perigoso e pode causar transtornos...
vc pode escolher que campos buscar em uma consulta, e como popular um objeto com eles
eu não uso 1-N, não uso pq causa tantos problemas, que não caberia listar nesse post, já li em diversos lugares pra não fazer isso, ja achei que em alguns casos eu deveria fazer, e sempre, inevitavelmente, eu me arrepdendi de ter usado, e parei...
.........
apesar de vc não conseguir fazer o que queria.... conseguria listar todos os NETOS, e fazer fecht nele até o pai, e essa sim seria uma abordagem coerente.... mas o contrario o hiberante julga perigoso...
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 16:03:33
|
boneazul
JavaGuru
Membro desde: 29/10/2007 17:13:59
Mensagens: 246
Offline
|
Lavieri wrote:O Hibernate não aceito duplos fechs....
isso é uma regra dele... ele não popula 2 relacionamentos diferentes de 1 pra muitos....
o motivo real disso eu não sei...
a saber:
popular 1-N é bem perigoso e pode causar transtornos...
vc pode escolher que campos buscar em uma consulta, e como popular um objeto com eles
eu não uso 1-N, não uso pq causa tantos problemas, que não caberia listar nesse post, já li em diversos lugares pra não fazer isso, ja achei que em alguns casos eu deveria fazer, e sempre, inevitavelmente, eu me arrepdendi de ter usado, e parei...
.........
apesar de vc não conseguir fazer o que queria.... conseguria listar todos os NETOS, e fazer fecht nele até o pai, e essa sim seria uma abordagem coerente.... mas o contrario o hiberante julga perigoso...
Nossa num sabia desse problema em relacionamentos 1-N, mas como voce resolveria sem esses relacionamentos 1-N , tem algum material que voce indicaria??
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 16:36:03
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
Nao sei bem te indiciar... eu ja li EJB in Action... e gostei...
de mais a mais, vc so precisa lembrar de popular apenas o lado sem o mappedBy, assim vc protege bem sua aplicacao ...
por exemplo
Pais 1->N Estado -> 1-N Cidade -> 1-N Bairro
em vez de vc criar os relacionamentos 1-N ... vc so escreve a outra ponta, o N-1
quando precisa do getBairros de uma cidade.... vc faz o seguinte...
"select from Bairro b where b.cidade = :cidade" e pronto
This message was edited 1 time. Last update was at 08/03/2010 16:37:42
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 18:15:52
|
boneazul
JavaGuru
Membro desde: 29/10/2007 17:13:59
Mensagens: 246
Offline
|
Lavieri wrote:Nao sei bem te indiciar... eu ja li EJB in Action... e gostei...
de mais a mais, vc so precisa lembrar de popular apenas o lado sem o mappedBy, assim vc protege bem sua aplicacao ...
por exemplo
Pais 1->N Estado -> 1-N Cidade -> 1-N Bairro
em vez de vc criar os relacionamentos 1-N ... vc so escreve a outra ponta, o N-1
quando precisa do getBairros de uma cidade.... vc faz o seguinte...
"select from Bairro b where b.cidade = :cidade" e pronto
Um entendi sua ideia em relacao ao mapeamento !! Obrigado pela explicação!!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/03/2010 18:46:09
|
boneazul
JavaGuru
Membro desde: 29/10/2007 17:13:59
Mensagens: 246
Offline
|
boneazul wrote:
Lavieri wrote:Nao sei bem te indiciar... eu ja li EJB in Action... e gostei...
de mais a mais, vc so precisa lembrar de popular apenas o lado sem o mappedBy, assim vc protege bem sua aplicacao ...
por exemplo
Pais 1->N Estado -> 1-N Cidade -> 1-N Bairro
em vez de vc criar os relacionamentos 1-N ... vc so escreve a outra ponta, o N-1
quando precisa do getBairros de uma cidade.... vc faz o seguinte...
"select from Bairro b where b.cidade = :cidade" e pronto
Um entendi sua ideia em relacao ao mapeamento !! Obrigado pela explicação!!!
Mas ainda restou uma ultima duvida.
Se eu precisasse saber a partir de uma pais todas as cidades ? Não teria como teria??
e se eu tivesse uma relação pro usuario que faça uma treeview com isso tudo?? descartando uso de ajax é claro.
Como ficaria por nao tenho a parte onetomany.
entao nao conseguiria usar
Ou seja me traga tudo relacionado a 1 pais com id tal
e a treeview ficasse assim
BRASIL
|---------SÃO PAULO
|---------------CENTRO
|---------------LAVAPÉS
|
|---------RIO DE JANEIRO
|---------------GAVIA
|---------------COPACABANA
isso fazendo analogia a outras classes , como voce resolveria?
Voce cria uma classe intermediaria e 3 querys?
Pq precisaria saber se brasil esta ativo
Ai quais cidades do brasil esta ativa
Ai qual bairro da cidade esta ativa
This message was edited 1 time. Last update was at 11/03/2010 18:50:23
|
|
|
 |
|
|