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(长id)并且它正在工作。我这里缺少什么魔法吗?
当我将代码更改为:
def category1 = new Category(User: user1, name: 'alice')
category1.setUser user1
category1.save(failOnError: true)
它工作得很好,所以我想这里一定有什么我错过了。
感谢您的任何帮助!
in
class AbstractClass {
User user
}
该类具有一个属性,其名称为 user
(小 U),其类型为 User
(大写 U),因此
new Category(User: user1, name: 'alice')
应该是
new Category(user: user1, name: 'alice')
以匹配属性名称。 请记住,Groovy和Java一样,区分大小写。