Exclusão em Cascata
12/11/2012 13:43
0
[b]Estou com um grande problema com a questão de excluir registros. Possuo 2 dominios:



class Cliente{


static belongsTo = [reservas: Reserva]
String nome
...

}


e a outra:


class Reserva{


static hasMany = [clientes: Cliente]
static belongsTo = [gestor: outroDominio]

static transients = ['valorTotal','quantidadeTotal']

String codigo //desenvolver gerador de codigo para aditivo.



O meu processo de exclusão é o mesmo gerado pelo Scaffold, não houve qualquer alteração.

Segundo o que entendi, quando ocorre a exclusão de uma Reserva automaticamente devido ao 'belongsTo' todos os clientes deveriam ser excluídos porém isso não ocorre. Simplemente apresenta uma mensagem 'registro não pode ser excluído'. Porque isso ocorre? Como faço para ao excluir um registro de reserva automaticamente todos os clientes serem excluídos também semelhante a uma cascata?
Tags: belongsTo, exclusão


0
Fala Brother blz?

Creio que esse LINK te ajuda!

Mas brother, só uma dúvida vc quer apagar os clientes do seu banco? E esses clientes não estão amarrados á outros dominios?

Abraços!


0
Isso mesmo Gabriel.

Dai todos os registros amarrados a este que possuem belongsTo serem excluidos também. Isso é um tipo de exclusão onde literalmente limpa a base de dados com todos os registros de um determinado cliente.

Sei que isso é completamente desaconselhavel, mas quero apenas fazer teste para entender melhor essa funcionalidade para permitir a exclusão até um certo nível sendo que a partir de um certo nível, quando as amarrações não possuírem belongsTo a exclusão em cascata parar.

Você acha que com apenas o texto deste link consigo fazer isso?

12/11/2012 16:52


0
O belongsTo só faz o cascate se for 1-to-many. No seu caso é many-to-many.

Pra fazer o que você quer, colocar uma propriedade "reserva" na classe Cliente deve bastar pra transformar a relação em 1-to-many.

Só tem que ver se é realmente isso que você quer, acho estranho a entidade Cliente ser mais fraca que a entidade Reserva...
12/11/2012 16:56


0
Fala Brother!!

Concordo com o rcauler! por isso até a minha dúvida! No caso não seria o cliente que poderia ter várias reservas? Aí no caso seria one-to-many! da forma que o rcauler falou!

Abraços!


0
Esse é apenas 1 exemplo que eu usei para ficar mais didático explicar minha dúvida.

Não entendi o porque disseram que é many-to-many ... em 'Reserva' o belongsTo esta para outro dominio.

Como deveria ser minha classe para a exclusão em cascata funcionar?
12/11/2012 17:17


0
Fala Brother!

Me expressei mal! concordei com:

Só tem que ver se é realmente isso que você quer, acho estranho a entidade Cliente ser mais fraca que a entidade Reserva...


No caso eu penso que seria o contrario!

class Cliente{


static hasMany = [reservas: Reserva]
String nome
...

}


e

class Reserva{

static belongsTo = [gestor: outroDominio, cliente: Cliente]

static transients = ['valorTotal','quantidadeTotal']

String codigo //desenvolver gerador de codigo para aditivo.


O link que te passei creio que resolve sim! Se puder testa aí pra nós!

Abraço!




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