まず:私はこれを行うにしようとしています
ERROR org.hibernate.transaction.JDBCTransaction - Could not toggle autocommit
java.sql.SQLException: Error during query: Unexpected Exception: java.lang.ArrayIndexOutOfBoundsException message given: 3
例外を取得IAM時には三しようとその最初の試みで、[OK]が、2番目の後、または連絡先を、更新しようとしているとき十分な情報がありません。
User updateUser (User tempUser) {
def id=tempUser.id
User user = User.get(id)//this line throws exception
なぜこのようにしていますか?このコードはDomainクラスにありますか?
あなたのコントローラでのユーザーインスタンスの古典的な方法を更新することができます。
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
}
}
また、あなたは次のようになめらか、(ユーザーのドメインクラスで)ユーザーインスタンスにメソッドを追加しようとすることができます:
Class User {
[...]
def updateUserInstance(params) {
it.properties = params
if (!it.hasErrors() && it.save(flush: true)) {
return true // or return it
} else {
return false
}
}
}
その後、お使いのコントローラでそれを呼び出す:
def userInstance = User.get(params.id)
if(userInstance.updateUserInstance(params)) {
// do something
}
私は上記のコードスニペットをテストしていないので、CAことrefull。あなたのコードについては、いくつかのコードを追加するといいでしょう:Userクラスの部分、さらにupdateUserメソッドの部分。
よろしくお願いいたします。
私はtim_yatesを編集できます –