Utilizar 2 vz em uma tabela o mesmo campo de referencia a outra (ex: tipo telefone)
19/04/2013 18:51
0
Bom tarde Lobo,
Como vão as coisas ?
Estou com uma dúvida. Estou tentando gravar 2 vezes em uma tabela o tipo de telefone, utilizando um id da tabela tipo, mas se não preencher o campo dá erro na query.
Segue
No Domain declarei a class abaixo utilizando o mappedBy a fim de utilizar o campo tipo_tel2 nas tabelas Igreja e Membros
class Telefone_tipo {
static hasMany = [igreja: Igreja, membros: Membros]
static mappedBy = [igreja: "tipo_tel2",membros: "tipo_tel2"]

String tipo
static constraints = {
tipo(maxSize:15)
}

Ainda no Domain declaro a class Membros abaixo
class Membros {
...
Telefone_tipo tipo_tel
Telefone_tipo tipo_tel2
}
static constraints = {

tentei colocar a clausula : tipo_tel2(maxSize: 10,nullable:true)
}

mas quando rodo a query, ela não aceita que o campo esteja null, nem mesmo em branco, já que faz apontamento para a tabela Telefone_tipo
emitindo o erro abaixo:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 2

??? O que fazer. help me
Tags: static mappedBy


0
Bom dia Celso. Não sou o Lobo, mas talvez possa lhe ajudar da mesma forma.

Por padrão todos os campos que você cria assumem essa características, not null. Para aceitar valores nulos você precisa "dizer" para sua aplicação que ela deve aceitar valores nulos.


static constraints = {
tipo_tel nullable: true
tipo_tel2 nullable: true
}


Espero que tenha esclarecido sua dúvida.


0
Outro ponto que observei agora é o seguinte.

Na sua Domain telefone vc diz que "o mesmo telefone pode pertencer a mais de um membro. É isso mesmo que você quer?

Talvez isto esteja influenciando no erro, pois você montou um relacionamento de N -> N, pois o mappedBy é para um relacionamento "Bidirecional", o que seria de chegar ao Membro pelo Telefone ou ao Telefone pelo Membro.


0
Na verdade eu criei uma tabela de tipos de telefone como segue, e a minha intenção era utilizar o campo tipo na tabela de membros mais de uma vez, ou seja, a cada telefone cadastrado em membros teria o seu respectivo tipo, só que quando não cadastro algum telefone em retorna o erro, pois faz referencia a tabela de tipos, resolvi criando mais um tipo chamado Nao consta, que é o último da tabela para não ficar sem referencia. Mas o que queria mesmo era não precisar de um tipo.

INSERT INTO `telefone_tipo` (`id`, `version`, `tipo`) VALUES
(1,0, 'Igreja'),
(2,0, 'Pastor'),
(3,0, 'Celular'),
(4,0, 'Comercial'),
(5,0, 'Fax'),
(6,0, 'Recado'),
(7,0, 'Residencia'),
(8,0, 'Outros'),
(9,0, 'Nao consta');
22/04/2013 17:22



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