Domain Class fica Null ao instanciar
12/08/2012 15:06
0
Pessoal,

estou tendo um problema bem básico no GRAILS, um das minhas classes de domínio fica sempre nula quando vou instanciar.

Eu sei que a maioria desses problemas é resolvido com um import da classe, mas dessa vez já tentei várias coisas mas não consegui, deve ser algo óbvio mas não estou enxergando, segue meu código:

A classe de dominio
package rca

class ProcedimentoConsulta {

static belongsTo = [procedimento:Procedimento, consulta:Consulta]
int quantidade

static constraints = {
}
}


Meu controlador:


package rca
import grails.converters.Javascript
import rca.ProcedimentoConsulta;
import rca.Consulta;
import rca.Procedimento;

class HomeController{


def index() { }

def incluir(){
println(params);
def pc = new ProcedimentoConsulta()
println(pc)

redirect(action: "index")
}

}



Estou dando apenas um new e um println para verificar.
Tags: Domain, Class, Null


0
Brother,

Vai retornar nulo, pq vc só criou o objeto! o que vc quer fazer? quer buscar um ProcedimentoConsulta?

Se for, vc usa o get para pegar um ProcedimentoConsulta especifico!

ProcedimentoConsulta procedimentoConsulta = ProcedimentoConsulta.get(O_SEU_ID)

Agora se vc quer retornar uma lista vc usa

def procedimentoConsultaList = ProcedimentoConsulta.list()

Ou ainda usar o find!


0
Pois é Gabriel....

Como eu vim do Rails ai to apanhando um pouco, vou mostrar o codigo completo, eu resolvi fazendo isso:

pc = new ProcedimentoConsulta(procedimento:Procedimento.get(1)).save()


porque o toString dele retorna o ID, por isso acredito que o retorno estava null.

Na verdade eu so postei parte do código, eu crio o procedimentoCconsulta e adiciono na consulta

consulta.addProcedimentoConsulta(pc)


O erro acontecia neste ponto, o problema é que to migrando um pequeno projeto em rails para grails para convencer a empresa onde trabalho fazer essa migração também para um projeto ERP que acho o grails mais adequado.

Voltando ao problema em Rails eu não preciso da esse save no objeto antes de adicionar a consulta por exemplo.

Valeu.
13/08/2012 14:01


0
Olá, Neto.

De fato, você tinha um "null" no primeiro código porque o Grails faz um "toString()" que procura pelo ID do objeto. Se usado o modo "debug" (caso esteja usando Eclipse/Netbeans/IntellijIdea) você verá que o o bjeto não é nulo.

Aliás, se não estiver usando IDE recomendo fortemente que use se a intenção é convencer de sair do Rails justemante pela possibilidade de "debug" como se faz em projetos Java (visto que "debug" com Rails é quase impossivel e bem precário).

Quanto a
"em Rails eu não preciso da esse save no objeto antes de adicionar a consulta por exemplo."
Em Grails também não. Não entendi o que você quis dizer aqui. Pode mandar o código parecido em Rails pra podermos comparar?


0
Olá Yoshiriro,

Você está certissimo, não preciso do save, fiz o teste aqui agora pouco o problema é que eu tenho um tipo date na minha consulta e o objeto não estava salvando pq no teste eu não estava colocando nenhuma data, ele tenta inserir null e não consegue. Passando um date agora deu certo, coincidentemente na mesma hora que coloquei o date foi quando coloquei o save que foi uma sugestão de um usuário no grupos users grails que tinha me passado.

Outro problema foi que estava passando addProcedimentoConsulta ao inves de addToProcedimentoConsulta. Agora está está tudo resolvido mesmo!


Sim, estou usando o Eclipse com o STS.
13/08/2012 16:13



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