2017-09-23 48 views
0

我有4个父类与其他类关联的类,但是孩子没有设置关系,并且validate()告诉我该属性可以'吨是空的,但我真的设置!Grails 2.5不保存父类的属性类在子类中的分配

class Lote { 
    static hasMany = [movimientos:Movimiento] 
} 

class Almacen { 
    static hasMany = [entradas:Movimiento] 
} 

class Movimiento { 
    static belongsTo = [lote:Lote, destino:Almacen] 
} 

class Ingreso extends Movimiento{ 

    def Almacen getDestino(){ 
    return this.destino 
    } 

    def Almacen getOrigen(){ 
    return null 
    } 
} 

而且我MovimientoService作用:

def registrarIngreso(def loteId, def params){ 
    Movimiento ingreso = new Ingreso(params) 
    ingreso.lote = Lote.get(loteId) 
    ingreso.destino = Almacen.get(params.almacenId) 

    if (ingreso.validate()){ 
     ingreso.save flush:true 
    } 

    return ingreso 
    } 

Movimiento需要是一个抽象类,我知道。

almace.lote被设置,但almace.destino没有。

为什么?我忘了什么? Lote和Movimiento课程与Almacen和Movimiento具有相同的关系。

回答

1

我觉得设置def Almacen getDestino()Ingreso类可能是一个问题 - 你可以尝试删除这种方法吗? 无论如何你不必手动创建一个getter,GORM应该找出它应该返回destino对象。

+0

是啊,这就是问题所在。我删除了这个方法,这个关系很好。谢谢!! – Santee

+0

我创建了在其他子类中返回null的方法,但是定义了destino nullable的约束:true这不是必需的。 – Santee