gpt4 book ai didi

grails - GORM-在.get()函数中获取SQL异常

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

嗨,我正在使用GORM,我在数据库中有一个用户表。我也有一种更新方法来更新用户个人资料。当我尝试通过第一次尝试更新联系人时可以,但是在第二次或有时第三次尝试后,iam

ERROR org.hibernate.transaction.JDBCTransaction - Could not toggle autocommit
java.sql.SQLException: Error during query: Unexpected Exception: java.lang.ArrayIndexOutOfBoundsException message given: 3

当我尝试这样做时的异常(exception):
User updateUser(User tempUser){
def id=tempUser.id
User user = User.get(id)//this line throws exception

最佳答案

首先,没有足够的信息。

User updateUser (User tempUser) {
def id=tempUser.id
User user = User.get(id)//this line throws exception

你为什么要这样?这段代码在Domain类中吗?

您可以在 Controller 中更新用户实例的经典方式:
def userInstance = User.get(params.id)
if(userInstance) {
userInstance.properties = params
if (!userInstance.hasErrors() && userInstance.save(flush: true)) {
flash.message = "User was updated successfully"
// redirect somewhere
}
}

您也可以尝试将方法添加到用户实例(在User域类中),如下所示:
Class User {
[...]

def updateUserInstance(params) {
it.properties = params
if (!it.hasErrors() && it.save(flush: true)) {
return true // or return it
} else {
return false
}
}
}

然后在您的 Controller 中调用它:
def userInstance = User.get(params.id)
if(userInstance.updateUserInstance(params)) {
// do something
}

我没有在上面测试代码段,所以要小心。关于您的代码,如果您提供了更多代码,那就太好了:User类的一部分,updateUser方法的更多部分。

问候。

关于grails - GORM-在.get()函数中获取SQL异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530805/

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