2012-06-15 56 views
0

我有一個簡單的域對象層次結構。所有人都知道它的孩子和唯一的父母。沒有周期。將域對象標記爲已存檔(寫保護)

我讓我的域類實現該接口

interface IArchivable { 
    boolean isArchived() 
} 

凡子對象重定向此調用父對象。根對象將有一個(數據庫)屬性,隨時會被更改。

使用的Groovy/Grails的(或爲了便於一般性模型 - 視圖 - 控制器的):

  • 請告訴我這寫保護整個層次的最佳做法? (攔截控制器更新方法通過Groovys MetaProgrammingAOP?)
  • 如何輕鬆地寫保護html頁面的輸入,選擇,....?
  • 假設我的模型更復雜:一個孩子有幾個父母,有周期。我怎麼才能實現這個功能呢?

回答

1

看一看grails domains events。您可以使用onLoad攔截您的域的加載(或者在更新時,取決於您的業務)事件,並使其成爲只讀調用grails discard method