Dados não estão sendo persistidos
28/12/2012 15:38
0
Estou começando com o grails e no programa que estou praticando os dados não estão sendo persistidos. Possuo as seguintes classes

class Localizacao {

double latitude
double longitude
static hasOne = [taxi:Taxi]

static constraints = {
latitude(nullable:false,blank:false)
longitude(nullable:false,blank:false)
taxi(unique:true)
}
}


class Taxi {

int taxiNumber;
Localizacao localizacao

static constraints = {
taxiNumber(nullable:false,blank:false)
localizacao(nullable:false,blank:false)
}
}


E o seguinte método para gravar os dados.


def localizacao = new Localizacao(latitude:10,longitude:10)
localizacao.save(flush:true)

def taxi = new Taxi(taxiNumber:001,localizacao:localizacao)
taxi.save(flush:true)


É lançada a exceção dizendo que não passo a ID de localizacao e quando passo localizacao.id no BD não aparece nada as tabelas estão vazias, e não é lançada nenhuma exceção. Estou usando o Mysql.


Valeu!
Tags: BD,Gorm,


0
Coloquei essa instrução dentro do método e aparece o seguinte erro: Field error in object 'localizador.Taxi' on field 'localizador': rejected value [null];

Sei que não aceita valor NULL, mas se passo o objeto da erro pq ele quer a ID e se passo a ID não passo o Objeto, se passo os dois da erro tbm.

if (!taxi.save()) {
taxi.errors.each {
println it
}
}


28/12/2012 15:41


1
Brother!

Creio que seja um erro conceitual! Se liga! Vc disse o seguinte... Localizacao "tem um"(hasOne) Taxi e ele deve ser único, só que quando vc salva a Localizacao vc ainda não tem o Taxi, então creio que vai dar erro mesmo! Dá uma revisada no relacionamento dos dois objetos!

Abraço!


0
Valeu, era isso mesmo!

Tudo resolvido :)
28/12/2012 19:19



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