嗨,我正在使用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/