Groovy新手。所以我有一个超类
class AbstractClass {
User user
}
和子类
class Category extends AbstractClass {
String name
}
当我尝试在BootStrap.groovy(我使用Grails)中创建对象时:
User user1 = new User(...).save(failOnError: true)
// I know user1 is properly created
def category1 = new Category(User: user1, name: 'alice').save(failOnError: true)
好吧,我的问题是没有设置用户字段。它是空的。这已经改变了:以前,我没有保存用户,而是保存了它的ID(Long id),它正在运行。我在这里找不到任何魔法?
当我将代码更改为:
时def category1 = new Category(User: user1, name: 'alice')
category1.setUser user1
category1.save(failOnError: true)
它运作得很好,所以我猜这里肯定有一些东西。
感谢您的帮助!
答案 0 :(得分:2)
在
class AbstractClass {
User user
}
该类有一个名称为user
(小u)且其类型为User
(大写U)的属性,因此< / p>
new Category(User: user1, name: 'alice')
应该是
new Category(user: user1, name: 'alice')
匹配属性名称。记住,像Java一样,Groovy区分大小写。