Erro ao remover registros
21/08/2012 14:01
0
Então pessoal, em todos os meus relacionamentos do tipo
static hasMany = [estabelecimentos: Estabelecimento]
ao tentar excluir o registro, por exemplo, Usuario possui esse relacionamento,
quando tento excluir o usuário, o registro não é excluído por estar sendo utilizado em outro local,
até aí tudo bem, porém, ao fazer isso, ele exclui todos os meus registros do hasMany,
ou seja, tento excluir o Usuário, ele não exclui (o que está correto), porém o Usuário perde seus estabelecimentos (não são excluidos, apenas são retirados do Usuário).. alguém pode ajudar?

Valeu
Tags: cascade, remover, excluir, hasMany


0
Olá, Italo.

Amigo, você tentou fazer um .delete() numa instância de Usuario?

Ah, e na classe Estabelecimento há um objeto do tipo Usuario?


0
Então José, assim como um usuário pode ter mais de um estabelecimento, um estabelecimento também pode ter mais de um usuário relacionado a ele.. seria um many-to-many então não coloquei relacionamento do lado do estabelecimento.. deveria colocar? o grails n aceita hasMany dos dois lados, então só coloquei do lado do usuário..


0
isso, usuarioInstance.delete(flush: true), aí n exclui, mas retira todos os estabelecimentos


0
Italo, o que perguntei é se na sua classe Estabelecimento há algo como:

class Estabelecimento {

...

Usuario usuario // Isso aqui

...

}


0
Ítalo, se tiver o relacionamento como o José Yoshiriro está perguntando, você pode fazer assim :


def estabelecimento = Estabelecimento.findByName("Comércio 1")
def usuario = estabelecimento.usuarios.find { it.nome = 'João' }

estabelecimento.removeFromUsuarios(usuario)
22/08/2012 14:19


0
Então srs., consegui fazer funcionar da seguinte forma:

Na class Estabelecimento:

static hasMany = [usuarios: Usuario]
static mappedBy = [usuarios: 'estabelecimentos']
static belongsTo = Usuario

static mapping = {
usuarios joinTable: "estabelecimento_usuarios"
}


Na classe Usuario:

static hasMany = [estabelecimentos: Estabelecimento]
static mappedBy = [estabelecimentos: 'usuarios']

static mapping = {
estabelecimentos lazy: false, joinTable: 'estabelecimento_usuarios'
}

e adicionei com o addTo e removi com o removeFrom como citado pelo Pedro.

Valeu pela ajuda de vcs!



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