Новый объект домена Grails с картой свойств, не устанавливающей свойство

РЕДАКТИРОВАТЬ: Согласно моему ответу ниже, это кажется исправленным с помощью «очистки Грааля». Вы в отчаянии бьетесь головой и иногда не замечаете очевидного.

Некоторое время у нас была следующая структура объектов предметной области:

abstract class Company {

String name
...
}

и несколько дочерних элементов, подобных приведенным ниже, с разными объектами-"владельцами". Каждый конкретный класс имеет свою таблицу в БД.

class CompanyChild extends Company {
static belongsTo = [owner:SomeDomain]
...
}

Я добавляю еще одно свойство к абстрактному родителю по разным причинам, поэтому родитель теперь выглядит примерно так (CompanyType — это перечисление):

abstract class Company {

String name
CompanyType companyType
...
}

Все это кажется довольно простым. Сейчас в фирменном сервисе где-то так делаю:

log.debug("Saving new company type=$companyType")
def company= new Company(name: 'Acme', companyType: companyType, <other properties here>)
log.debug("company object has type=${company.companyType}")

В журнале показано...

CompanyService Saving new company type=NONPROFIT
CompanyService company object has type=null

Что, черт возьми, здесь происходит? Действительно кажется, что ${company.companyType} не должно быть нулевым.

Если я добавлю company.companyType = companyType после создания объекта, он работает, но я кое-что не понимаю.

Изменить: версия Grails 2.3.11


person Trebla    schedule 06.02.2015    source источник


Ответы (1)


Иногда ты так сильно сосредотачиваешься на проблеме, что не можешь отступить и все такое... может быть, мне нужно сделать полную "чистку Грааля"...

Очистить и перекомпилировать, кажется, был мой ответ.

person Trebla    schedule 06.02.2015