Grails行为方法AddTo *

时间:2014-01-23 13:42:28

标签: grails gorm

我的addTo *方法不稳定,我有一个记录,不断地在一个实例中创建关系信息。问题是,当我在短时间内放置多个插入时,它们将不再保留在数据库中,而不是在它们返回后,它们只是被丢弃的时间。

我的简单类是'发生'和'监控',每当我打电话时,我必须注册它,它发生在连续2个记录之后,第3个不再存在于数据库中,我丢失了记录。

Class Occurrence implements Serializable{
...
hasMany = [accompaniments: Monitoring]
...
}

Class Monitoring implements Serializable{
...
belongsTo = [occurrence : Occurrence]
...
}

让控制器看起来像这样:

def regMonitoring(Long id){

        def chamadoInstance = Occurrence.get(id)

        if (!chamadoInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'Occurrence .label', default: 'Occurrence '), id])
            return
        }

        chamadoInstance.status = StatusChamado.findByCodigo("MOV") 

        if (!chamadoInstance.save(flush: true)) {
            render(view: "editMonitoring", model: [chamadoInstance: chamadoInstance])
            return
        }


        def mov = chamadoService.regMonitoring("") //returns an instance of Customer with preset output values ​​.

        chamadoInstance.addToAccompaniments (mov) 

        redirect(action: "showChamado", id: chamadoInstance.id)


    }

1 个答案:

答案 0 :(得分:0)

添加到集合后添加域实例保存。

chamadoInstance.addToAccompaniments (mov) 
chamadoInstance.save(flush: true)

这应该可以解决问题。