grails中的域类属性可以有多个别名吗

grails中的域类属性可以有多个别名吗,grails,attributes,dns,alias,Grails,Attributes,Dns,Alias,我的应用程序中有许多域类,用于审计日志记录,我需要每个域类的name属性。不幸的是,name属性在所有域中都不是通用的 在我的Audt日志类中,我得到修改/创建/删除的对象类型,然后立即保存id(这是常见代码,因为所有域都有“id”属性),但现在如果我想从id中获得域外的name属性,每个域都有不同的name属性,就像Resource domain有resourceName一样,用户域有用户名等等。。。soI将必须分别处理每个域(比如有一个映射或一组switch语句,用于从域类名中获取name属

我的应用程序中有许多域类,用于审计日志记录,我需要每个域类的name属性。不幸的是,name属性在所有域中都不是通用的
在我的Audt日志类中,我得到修改/创建/删除的对象类型,然后立即保存id(这是常见代码,因为所有域都有“id”属性),但现在如果我想从id中获得域外的name属性,每个域都有不同的name属性,就像Resource domain有resourceName一样,用户域有用户名等等。。。soI将必须分别处理每个域(比如有一个映射或一组switch语句,用于从域类名中获取name属性)。
是否有一种方法可以将每个域类的名称字段的别名映射为“name”。在我所做的任何更改中,域中的实际属性都不应该有任何更改,我可以向审核域添加列,但不能添加其他表更改。

提前感谢

我不认为有任何方法可以自动完成此操作

正如您所猜测的,您要么必须更改所有域对象,使其具有“name”属性,要么以某种方式维护每个类中哪个属性被视为“name”的映射

我想一个答案可能是向每个域类添加一个getName()方法,并从该方法返回适当的值


如果您真的不想修改域对象,可以使用groovy元对象编程(MOP)将此方法从引导类注入每个域类。

我可以使用getName函数,这看起来是最优雅的方法。谢谢