在grails中删除时违反了完整性约束

时间:2014-07-21 10:51:05

标签: grails grails-2.0 grails-domain-class

我有以下域类

class User{
    static hasMany = [servers: Server]

    static mapping = {
        servers cascade: 'all-delete-orphan'
    }
}

class Server{
    int sid
}

当我删除服务器时,我得到了

  

违反完整性约束(XXXXXX.XXXXXXXXX) - 找到子记录

如何将CASCADE ON DELETE约束添加到grails中的外键中。

1 个答案:

答案 0 :(得分:1)

您定义了UserServer之间的单向关系。由于Server不知道其相关User,您需要执行以下操作:

def user = User.get(123L)

def server = user.servers.find { it.sid == 321 }

if (server) {
  user.removeFromServers(server) 
  user.save()
  server.delete()
}