Я добавляю Hibernate Envers в свой проект Grails 3. Я заметил, что для одной из моих сущностей, которая имеет событие onLoad()
, событие onLoad()
никогда не вызывается для сущностей ревизии Envers.
Как я могу убедиться, что этот код всегда вызывается, даже для исторических версий этой сущности?
Случай использования:
Я работаю над службой RESTful, используя представления Grails 3 JSON. В одном из моих доменных классов есть столбец дискриминатора, который также должен отображаться в выводе JSON, чтобы потребитель мог определить, к какому типу он относится. По этой причине доменная сущность определяет метод onLoad()
, который заполняет временное свойство, соответствующее типу дискриминатора:
class MyChildDomainClass extends MyBaseDomainClass {
void onLoad() {
valueType = ValueType.STRING
}
static mapping = {
discriminator value: ValueType.STRING
}
}
Это прекрасно работает для обычных экземпляров домена, но когда я ищу ревизию объекта из AuditQueryCreator
Энверса, аудиторский запрос не вызывает метод onLoad()
.
Кажется, я мог бы просмотреть результаты и вручную вызвать onLoad()
, но я надеялся, что есть лучший способ исправить это.
Заранее спасибо!