2

以下 Groovy 代码在写入 grails-app/domain/Foo.groovy 时创建了一个名为 Foo 的 GORM 持久域类:

class Foo {
  String someField
}

但是,如果我改为编写“public class Foo”,则该类不会被 GORM 持久化(即没有注入 save() 方法,没有创建数据库表等):

public class Foo {
  String someField
}

我正在运行 Grails (1.1) 的最新稳定版本。

问题:这是一个错误还是预期的行为?为什么?

更新#1:相关子问题:我是唯一遇到这个问题的人吗?很高兴知道其他人是否能够复制这一点。谢谢!

4

3 回答 3

1

听起来像一个错误。

我会将详细信息输入 JIRA 并从源头获取答案。

http://jira.codehaus.org/browse/GRAILS

于 2009-03-30T19:00:51.213 回答
1

Groovy 类默认是公共的(对于 Groovy 方法也是如此),因此如果添加public. 但是,我无法在 Grails 1.1.1 中重现此行为/错误

于 2009-09-22T19:06:26.440 回答
0

我在 1.3.3 上没有出现这种行为

检查 DomainClassArtefactHandler.groovy 中的“isDomainClass”方法。你会看到(至少在 1.3.3 中)唯一被排除的类型是闭包和枚举

于 2010-09-26T04:30:35.837 回答