假設我有哪幾種成員域類branch
:的Grails:域類派生領域
…
static hasMany = [ members:Member ];
…
現在假設我希望有現成的分支成員的數量,把它顯示在list
和view
動作,所以也許將這些信息存儲到域類本身的變量中會是一個好主意?
…
Integer memberCount = members.size();
static constraints = {
memberCount(editable:false);
}
…
(這是正確的語法?)編輯:這是不正確的語法。我無法評估成員列表的大小,因爲它還不存在,而且grails會抱怨size()不適用於null對象。我還能嘗試什麼?
然而,如memberCount
現已在域類的變量,所以可以在創建所述Branch
的(這是禁忌直觀的)一個值分配給它,它會一旦一個新的Member
是不會自動更新添加。
當然可以用不同的方式達到預期的結果。我可以操作view.gsp
和list.gsp
在/Branch
目錄中,在其中添加一些額外的<td>
等。但對我而言,這看起來並不高雅。
基本上,我想我正在尋找一些方法來告訴Grails的某一個變量是衍生,不應該由用戶可置,但更新必要的時候。有這樣的方式嗎?
如果'memberCount'屬性位於'transients'列表中,它將不會被存儲在數據庫中。但是,一旦添加了一個新的「成員」,它會更新嗎?在我看來,我將不得不使用您鏈接的GORM的派生屬性feauture。 – mzuba