方法
def UserRole (User u, Role r, boolean flush = false) {
...
}
可以像UserRole.create(u, r, true)
但错误地使用UserRole.create(u, r, flush: true)
调用它会导致
没有方法签名:UserRole.create()适用于参数 types:(java.util.LinkedHashMap ....
我知道这是一个错误的方法来调用它,但我试图理解为什么会出现LinkedHashMap
错误,以及GORM内置保存方法是如何工作的...因为调用User.save(flush: true)
有效精细。
答案 0 :(得分:0)
您有一个错误,因为flush : true
被解释为具有一个键值元素的Map。
Groovy不支持方法中的命名参数。
因为调用User.save(flush:true)可以正常工作
我没有使用Grails,但save()
似乎是GORM框架中的默认内置方法。如果检查方法实现,您很可能会在方法参数中看到它接受Map
。