2012-12-18 108 views
1

我有一些數據,stateNames,實例化對象國家的一個實例。現在,我只會有一個國家,但每個國家的國家名稱應該不同。用我的數據實例化國家實例的最佳方式是什麼?我對Grails很陌生,並會欣賞任何「最佳實踐」或常見設計。Grails的設計領域類的初始化從靜態數據

一個解決方案,我能想到的就是使用自舉到國家的實例國家UnitedStates保存到數據庫中。這種方法有什麼缺點?

另一種解決方案是保存在一個文件中的數據(XML格式?)下的web應用程序文件夾中。如果我採用這種方法,美國的國家實例是否應由管制員實例化?

回答

1

一個項目的目標應是檢查出來的代碼後,無需任何設置在開發模式下運行。考慮到這一點,BootStrap.groovy是使用最小數據集(例如用戶帳戶或靜態數據(如國家/地區名稱))初始化數據庫的好地方。

一個常見的模式是檢查一些已知的情況下 - 如管理用戶帳戶 - 並插入最少的數據,如果它不存在設置。例如:

class BootStrap { 

    def init = { servletContext -> 
     def admin = User.findByUsername('admin') 
     if (!admin) { 
      // initialize the database by inserting a minimal data set 
     } 
    } 
} 
+0

太棒了,這就是我所得到的。 – Alison

0

寫一個服務接受輸入並堅持到數據庫,並從任何地方調用它,它可以根據你的requirement.Boot帶引導或控制器是繁重的好辦法。

+0

你是什麼意思的服務「堅持到DB?」 – Alison

+0

我在說關於靜態數據的初始化,因爲ataylor建議 – Akhilesh