gpt4 book ai didi

grails - 删除中的catch(DataIntegrityViolationException)错误后,更改域的属性。 Cereal 2.5

转载 作者:行者123 更新时间:2023-12-02 15:24:54 24 4
gpt4 key购买 nike

在删除中遇到错误后,我试图修改域属性。我的 Action 代码如下:

@Transactional
def delete(User userInstance) {

if (userInstance == null) {
notFound()
return
}

try {
userInstance.delete(flush: true)
}
catch(e) {
userInstance.active = false
userInstance.save(flush: true)
render status: 200
return
}


request.withFormat {
form multipartForm {
flash.message = message(code: 'default.deleted.message', args: [message(code: 'user.label', default: '${className}'), userInstance.id])
redirect action:"index", method:"GET"
}
'*'{ render status: NO_CONTENT }
}
}

删除时发生错误时,我想将 Activity 属性值更改为false。

最佳答案

之所以得到DataIntegrityViolationException,是因为您违反了一些外键关系规则,在您的情况下,很可能您的user实例被其他某个域对象(表)引用。

userInstance.active = false很好的情况下,您可以在catch块上执行任何操作,但是由于这个原因您没有收到错误(再次从catch块引发另一个错误)。

关于grails - 删除中的catch(DataIntegrityViolationException)错误后,更改域的属性。 Cereal 2.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29524126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com