Estou adicionando Hibernate Envers ao meu projeto Grails 3. Percebi que para um dos meus entidades, que tem um onLoad()
evento, o onLoad()
evento nunca é invocado para entidades de revisão Envers.
Como posso ter certeza de que este código é sempre invocado, mesmo para revisões históricas desta entidade?
Caso de uso:
Eu estou trabalhando em um serviço RESTful usando visualizações Grails 3 JSON. Uma das minhas classes de domínio tem uma coluna discriminadora, que também deve ser processado na saída JSON assim que o consumidor pode dizer que tipo é. Por esta razão, a entidade de domínio define um onLoad()
método que preenche uma propriedade transitória que corresponda ao tipo discriminador:
class MyChildDomainClass extends MyBaseDomainClass {
void onLoad() {
valueType = ValueType.STRING
}
static mapping = {
discriminator value: ValueType.STRING
}
}
Esta multa trabalha para instâncias de domínio normal, mas quando eu olho para uma revisão entidade de Envers' AuditQueryCreator
, o queyr auditoria não é invocar o onLoad()
método.
Parece que eu poderia loop sobre os resultados e invocar manualmente onLoad()
, mas eu estava esperando que houvesse uma maneira melhor de resolver isso.
Desde já, obrigado!