Apgar os filhos de um pai
24/05/2010 00:00
0
Ola'

Como no meu post anterior eu ainda estou naquele exemplo da treeview.

Desta vez eu quero pagar os filhos de um pai.
eu tenho:
Classe1{
Classe1 classe1
int valor
}


E agora ao tentar apagar um registro quero que busque se ha' os filhos e apague os filhos antes do pai (nao daria para apagar o pai antes dos filhos mesmo).

Tentei o seguinte:


def beforeDelete=
{
if(this.classe1 != null)
{
def lvl = Classe1.get(this.id)
def objeto = Classe1.findAllByClasse1(lvl)
(...)
}
}


Onde ha' as reticencias e' onde empaquei.
Quero que apague tudo o que resultou da busca por objetos que sejam filhos.

Acho ate' que estou fazendo errado, mas se estiver certo, como continuo?
Tags: Grails


0
Voce ja tentou :

Pai -- filhos

def pai = Pai.get(1)
pai.delete(flush:true)

se seus relacionamentos estiverem todos oks entre pais e filhos(belongss), automaticamente o grais(hibernate) apaga todos.
24/05/2010 00:00


0
MayogaX,


Tenta isso:
Customer.executeUpdate("delete Classe1 c where c.id in (:idOption)", [idOption:idsClasse1])


Eu sugiro que você sempre mantenha os relacionamentos bi direcionais, fica mais facil para o hibernate identificar quem é o que no relacionamento.
se você fizer eles bi direcionais o comando acima fica melhor:

Customer.executeUpdate("delete Classe1 c where c.classePai.id  = :idPai", [idPai:idDoPai])


Dá uma olhada nesse tópico http://www.grailsbrasil.com/viewtopic.php?f=1&t=999 ele esclarece uma dúvida pertinente a sua.
25/05/2010 00:00


0
[quote="Herrera"]Voce ja tentou :

Pai -- filhos

def pai = Pai.get(1)
pai.delete(flush:true)

se seus relacionamentos estiverem todos oks entre pais e filhos(belongss), automaticamente o grais(hibernate) apaga todos.[/quote]


ai e' que esta': nao posso usar oos relacionamentos GROM. Por que nao? Pergunte pra quem me proibiu de usar nesse caso XD


[quote="igorhara"]MayogaX,


Tenta isso:
Customer.executeUpdate("delete Classe1 c where c.id in (:idOption)", [idOption:idsClasse1])


Eu sugiro que você sempre mantenha os relacionamentos bi direcionais, fica mais facil para o hibernate identificar quem é o que no relacionamento.
se você fizer eles bi direcionais o comando acima fica melhor:

Customer.executeUpdate("delete Classe1 c where c.classePai.id  = :idPai", [idPai:idDoPai])


Dá uma olhada nesse tópico http://www.grailsbrasil.com/viewtopic.php?f=1&t=999 ele esclarece uma dúvida pertinente a sua.[/quote]

Eu vou ate' tentar...

mas para esclarecer, nao estou usando relacionamentos GROM (por que fui proibida neste caso especifico, e nao sei porque).
A coisa mais parecida de relacionamento e' ter um atributo do tipo Classe1 classe1 dentro da class Classe1.
25/05/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto