不要更新或删除数据库中的数据

Do not update or delete data from the database

我有域名class:

package testgrails12
class Teams {
String name
static mapping = {
version false
}
static constraints = {
name nullable: true
}
}

我正在尝试从 table 我的控制器中删除或更新数据:

def team = Teams.get(1)
team.delete()

更新:

team.name = '123'
team.save()

第一种情况和第二种情况我都没有得到结果。我也没有收到任何错误。我很困惑。它只是行不通。我在数据库中看到了结果。

为了将结果提交到数据库,使用会话的特殊方法 - flush()

删除 ->

   def delete(Long id) {
            def teamsInstance = Teams.get(id)
            if (!teamsInstance) {
         your logic,  if team instance is null
            }

                teamsInstance.delete(flush: true, failOnError:true)
                 }

更新 ->

def update(Long id {
        def teamsInstance = Teams.get(id)
         teamsInstance.setName("xyz");
teamsInstance.save(flush: true, failOnError:true)
}

在这两个动作中我都使用了 flush: true, failOnError:true 如果您的域中出现任何错误,那么 failOnError 将抛出异常,并且借助异常您可以跟踪问题。

一个好的起点是生成视图和控制器,以了解 'stuff' 如何在视图和控制器之间发生,运行 generate-all 命令。

generate-all testgrails12.Teams

您最终会得到一个 TeamsController 和所有相关的 gsps。

您还可以使用 scaffolding,它与上面的基本相同,但所有的魔法都被隐藏了。 创建以下 Teams 控制器:

class TeamsController {
    static scaffold = Teams
}