domain class e relacionamento muitos pra muitos e toString
20/03/2013 14:27
0
package xxxx

class Estado {

static constraints = {
}
String nome
String sigla
static hasMany = [empresa:Empresa,cidade:Cidade]
String toString(){
"${nome}-${sigla}";
}
}
Tenho a seguinte domain class criada, quando faço o relaciomento para outras class
gostaria que aparece na class empresa ${nome}-${sigla} e na class cidade aparece somente a ${sigla}.Da forma que esta as duas exibem o mesmo conteudo é possível fazer isso.
Obrigado
Tags: toString


0
Neste caso você vai ter de reescrever os métodos toString nas classes Empresa e Cidade.


-2
EXemploe???????
20/03/2013 18:16


0
Oi "simpatia".

Vamos lá: supondo que sua classe Cidade, por exemplo, tenha um belongsTo apontando para o estado.


class Cidade {
static belongsTo = [estado:Estado]
String sigla
String toString() {
this.sigla <- Simples assim
}
}


Entendi direito sua dúvida?


0
Desculpa ae pelo exemplo essa não era a intensão .....
Obrigado
21/03/2013 12:12


0
package xxxx

class Estado {

static constraints = {
}
String nome
String sigla
static hasMany = [empresa_icms:Empresa_icms,cidade:Cidade]
String toString(){
"${nome$}-{sigla}";
}
}


package xxxx

class Cidade {

static constraints = {
}
String nome
static belongsTo = [estado:Estado]
static hasMany = [empresa_icms:Empresa_icms]
String toString(){
"${nome}-${estado}"
}

}
package xxxx
class Empresa{

static constraints = {
razaoSocial()
cnpj(nullable:false,unique:true)
insEstadual()
logradouro()
numeroComplemento()
bairro()
cep(maxSize:10)
cidade(nullable:false)
estado(nullable:false)
status(inList:["NOVA APROVADA","NOVA REJEITADA","EXISTENTE NÂO REVISADA","EXISTENTE REVISADA SEM ALTERAÇÕES","EXISTENTE REVISADA COM ALTERAÇÕES","CARATER PRECÁRIO","EXISTENTE EXCLUÍDA","REINCLUÍDA"],nullable:false)
produtosServico()
observacoes()


}
String razaoSocial
String cnpj
String insEstadual
String logradouro
String numeroComplemento
String bairro
String cep
String produtosServico
String status
String observacoes
Date dataRevisao
static belongsTo = [cidade:Cidade,estado:Estado]

}
Dá uma olhada como minhas class estão definidas para entender melhor a situação.
21/03/2013 12:36


0
Olá, Tiago.

Também não sei se entendi o que você quer, mas se entendi você sobrescreveu o método "toString()" de maneira correta (falando de seu primeiro post).
Se só exibiu a sigla de certa cidade é porque seu campo nome está vazio. Como vão vi um "nullable" nem "blank" como false na classe Cidade, percebi que isso é perfeitamente possível no teu modelo.


Já no seu último post, percebi um erro na classe "Estado":
String toString(){
"${nome$}-{sigla}";
}

O correto seria
String toString(){
"${nome}-${sigla}";
}


Abraços.


0
Bom ai no exemplo foi apenas um erro digitação...ahah :) mas não é essa minha duvida, nos dois casos ele exibe o nome e sigla tanto na Class Cidade como na Class Empresa a duvida em questão é se seria possível exibir na Class Cidade somente a sigla e na Class Empresa nome e sigla.
obrigado
26/03/2013 11:30


0
Fala Thiago, blza?

Você quer que isso apareça no select box do form quando existir o relacionamento?

Ou você quer que o Objeto Estado retorne diferentes toStrings de acordo com o local do qual é instanciado?
Se este for o caso, você pode fazer outro método, e chamar um deles quando for conveniente. Ex:

na class Estado

String sigla(){
this.sigla
}
String toString(){
this.sigla + "-" + this.nome
}


Se você quiser exibir a sigla do estado, ai você pode por exemplo usa estadoInstance(seja la qual for o nome do objeto).sigla(), e quando for completo deixar o toString trabalhar.
26/03/2013 12:27


0
Eu quero que apareça no select box do form ... vou tentar aki.. vlws
Quando o select for da Cidade quero só a sigla quando for estado quero sigla e nome
26/03/2013 12:54


1
"Quando o select for da Cidade quero só a sigla"

Simples. No <g:select> use o atributo optionValue="sigla". Nesse caso não precisa criar um "toString()" já que quer ver apenas 1 campo.

Abraços.



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