grails - scafold更新阻止保存

时间:2016-06-07 16:05:16

标签: grails scaffolding

我正在使用grails 2.4.4和脚手架生成的默认更新方法。让我们说它是:

@Transactional
def update(Club clubInstance) {
    if (clubInstance == null) {
        notFound()
        return
    }

    if (clubInstance.hasErrors()) {
        respond clubInstance.errors, view:'create'
        return
    }

    clubInstance.save flush:true

    request.withFormat {
        form {
            flash.message = message(code: 'default.created.message', args: [message(code: 'clubInstance.label', default: 'Club'), clubInstance.id])
            redirect clubInstance
        }
        '*' { respond clubInstance, [status: CREATED] }
    }
}

我想在某些情况下防止储蓄。但我发现我可以用以下方法替换整个方法:

@Transactional
def save(Club clubInstance) {
    redirect action:"index"
}

它仍然可以保存数据。只有当我从参数中删除Club clubInstance时,它才会停止将数据保存到db。谁能告诉我它为什么会发生,我该如何控制储蓄?

1 个答案:

答案 0 :(得分:0)

感谢您的评论。这就是我想要的 - 有条件的保存。

@Transactional
def save(Club clubInstance) {
    if(testSomeCondition())
        clubInstance.save flush:true
    else
        clubInstance.discard()
    redirect action:"index"
}