Hi Jason,
This is due to
JAVA-636, that added support for mapped properties through both fields and getters, and also to the fact the the mapper has an opt-out approach when scanning for such properties, i.e, you need to explicitly exclude a property from being mapped by using the @Transient annotation.
Of course, this is a problem for auto-generated properties, like Groovy's "metaClass" property. I created
JAVA-1279 to track this issue. In the meanwhile, I experimented with the following workaround: in each of your mapped classes, override the "metaClass" property and annotate it with @Transient:
@Transient
def MetaClass metaClass = super.metaClass;
It makes things work as far as the mapper is concerned, although I wouldn't guarantee that id does not introduce side-effects as I'm no Groovy expert.
Hope that helps!
Cheers,
Alexandre