2012-03-28 40 views
1

我的應用程序中有許多域類用於審覈日誌記錄我需要每個Domain類的name屬性。不幸的是,名稱屬性在所有域中都不是通用的。
在我的Audt日誌類中,我獲得了修改/創建/刪除的對象類型,然後立即保存該id(這是因爲所有域都具有'id'屬性的通用代碼),但現在如果我想要獲取name屬性從域的ID,每個域有不同的名稱屬性,如資源域有資源名,用戶域有用戶名等等...所以我將不得不分別處理每個域(如有一個地圖或一堆開關語句從Domain類名獲得name屬性)。
有沒有一種方法,我可以有一個別名映射爲每個域名稱字段被稱爲'名稱'。在我做的任何更改中,域中的實際屬性不應有任何更改,我可以將一列添加到審覈域,但不能更改其他表中的更改。
在此先感謝
我們可以在Grails中爲域類屬性提供多個別名

回答

2

我不認爲有任何方法可以自動執行此操作。

正如你猜測的那樣,你將不得不改變所有的域對象,以便它們具有'name'屬性,或者以某種方式維護每個類中哪些屬性被認爲是'name 」。

我想這一個答案可能是一個getName()方法添加到每個域類的,並從該方法返回適當的值。

如果你真的不想在所有修改域對象,你可以使用Groovy元對象編程(MOP)注入該方法到從引導類每個域類。

+0

我可以做getName函數,看起來像最優雅的方式。謝謝 – 2012-03-28 03:58:15

相關問題