Problém je v tom, že váš koncept je zcela chybný. Mapu přiřazujete ke třídě a ne instanci s tímto řádkem:
User.metaClass.dynamicAttributes = [:]
Abyste dosáhli toho, co chcete udělat, musíte udělat následující:
User.metaClass.propertyMissing = { String name ->
if (!delegate.dynamicAttributes) delegate.dynamicAttributes = [:]
delegate.dynamicAttributes[name]
}
User.metaClass.propertyMissing = { String name, value ->
if (!delegate.dynamicAttributes) delegate.dynamicAttributes = [:]
delegate.dynamicAttributes[name] = value
}
Jsem si jistý, že existuje čistší způsob, jak toho dosáhnout, ale výše uvedené ukazuje řešení, kde je mapa instancí pro každou instanci a ne ve všech instancích.