"Публичный класс Foo" v.s. "класс Foo" в классах Groovy домена - PullRequest
2 голосов
/ 28 марта 2009

Следующий код Groovy создает постоянный класс домена GORM с именем Foo при записи в grails-app / domain / Foo.groovy:

class Foo {
  String someField
}

Однако, если я вместо этого напишу «открытый класс Foo», класс НЕ будет сохранен в GORM (то есть, не будет добавлен метод save (), не будет создана таблица базы данных и т. Д.):

public class Foo {
  String someField
}

Я использую последнюю стабильную версию Grails (1.1).

Вопрос: Это ошибка или ожидаемое поведение? Почему?

Обновление № 1: Соответствующий подвопрос: Я единственный, кто сталкивается с этой проблемой? Было бы неплохо узнать, сможет ли кто-нибудь повторить это. Спасибо!

Ответы [ 3 ]

1 голос
/ 22 сентября 2009

Классы Groovy являются открытыми по умолчанию (также как и методы Groovy), поэтому при добавлении public не должно быть никаких изменений в поведении. Однако я не могу воспроизвести это поведение / ошибку в Grails 1.1.1

1 голос
/ 30 марта 2009

Звучит как ошибка.

Я бы ввел детали в JIRA и получил бы ответ от источника.

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

0 голосов
/ 26 сентября 2010

Я не получаю такое поведение на 1.3.3

проверьте метод isDomainClass в DomainClassArtefactHandler.groovy. вы увидите (по крайней мере, в 1.3.3) единственные исключенные типы - это замыкания и перечисления

...