如何删除多对多关系?
|
zengsun
2008-01-20
Grails中雇员和角色的多对多关系中,可以通过代码Role.addToEmployees(someEmployee).save()添加关系。
但文档中没有提到如何删除这种关系呀! 雇员和角色类的定义如下:
class Employee {
String name
String login
String password
Boolean loginEnable
String identification
Date birthday
Date joinDate
String tel
static belongsTo = Role
static hasMany = [events:Event, roles:Role]
static constraints = {
name(size:2..20)
login(size:2..20, unique:true, nullable:false)
password(size:6..12)
loginEnable()
identification(maxSize:18)
birthday(max:new Date() - 18*365)
joinDate()
tel(nullable:true)
}
String toString() {
this.name
}
}
class Role {
String title
static hasMany = [employees:Employee]
String toString() {
this.title
}
}
|
|
|
jy00057800
2008-01-23
多对多 关系 要调用belongto所属方 手动删除
|
|
|
jy00057800
2008-01-23
不过好像 可以 我给个代码你看看 ,不好意思
def delete = { def role = Role.get(params.id) ///删除中间表内容 role.menus.toList().each { it.removeFromRoles(role) } role.delete() redirect(action:list) } |
|
|
zengsun
2008-01-23
哈哈,你从哪里看到removeFrom*方法的!
http://grails.org/doc/1.0.x/guide/single.html文档中没有提到。 |
|
|
zengsun
2008-01-23
jy00057800 写道 不过好像 可以 我给个代码你看看 ,不好意思
def delete = { def role = Role.get(params.id) ///删除中间表内容 role.menus.toList().each { it.removeFromRoles(role) } role.delete() redirect(action:list) } 谢谢,得正解! |
|
|
jy00057800
2008-01-24
上网找一个 grails-docs-1.0-RC1.pdf 的文档用 adober Reader 打开 可以搜索
把你要的搜索就行,比如你要删除,应该和remove有关系,你就搜索remove ,慢慢查就可以查到removeFrom了 呵呵 |

