groovy - Set grails domain object property without calling the setter method -
domain person
has property name
. setter method has been overridden store name embedded inside internationalization object within person object as:
internationalization: { name: { en: engilshname, fr: frenchname } }
therefore piece of code:
def person = new person() person.setname('merhawi', new locale('en')) person.setname('frenchmerhawi', new locale('fr')) person.save()
would store name inside mongo database as:
{ _id: numberlong(1), internationalization: { name: { en: "merhawi", fr: "frenchmerhawi" } } }
invoking getname
on person return correct name depending on current locale of environment.
now trying is: person
json
data want field name contains correct name depending on current locale of environment besides other fields. trying set person.name = person.getname()
before returning person
grails.converters.json
call setter method , doesn't give name field. instead tries store name in same embedded manner.
how add name field without calling setter method?
person.metaclass.setname = {-> delegate.name = delegate.getname()} person.setname(); return [person] grails.converters.json
solved problem.
Comments
Post a Comment