如果domain中定义了set或者list,自动生成代码时,修改domain值,set或者list会重复添加(set抛错),解决办法:
在controller的update方法中,加入以下代码:
@Transactional
def update(ShiroRole shiroRole) {
if (shiroRole == null) {
notFound()
return
}
if (params.users) {
shiroRole.users = null
shiroRole.properties = params
}
。。。。
先将users的值清空,检查有没有users属性,然后用properties方法重新赋值
这是domain属性:
class ShiroRole {
String name
static hasMany = [users: ShiroUser]
static constraints = {
name(nullable: false, blank: false, unique: true)
}
}