2012-08-10 106 views
-1

我寫了一個簡單的代碼來填充Grail域類和用於顯示數據庫內容的代碼,但它不起作用。附上是我的代碼!我感謝任何幫助。填充Grails域類

def populateDB(int nofelements) 
    { 
     def instance 
     for (int i=1;i<=nofelements;i++){ 
      instance=new Avendpoint() 
      instance.avName=org.apache.commons.lang.RandomStringUtils.random(9, true, true) 
      instance.bridge=org.apache.commons.lang.RandomStringUtils.random(9, true, true) 
      instance.callerID=org.apache.commons.lang.RandomStringUtils.random(9, true, true) 
      instance.con=false 
      instance.state=AvendpointState.ONE_WAY 
      instance.uid=org.apache.commons.lang.RandomStringUtils.random(5, true, true) 
      instance.save(flush: true) 
     } 

     render "The database has been populated successfully!" 

    } 
    def showDB(){ 
     def instance 
     String res 
     res+=Integer.toString(Avendpoint.count()) 
     for(int i=1; i<Avendpoint.count(); i++){ 
     instance=Avendpoint.get(i) 
     res+=instance.avName+"<br>"+instance.bridge+"<br>"+instance.callerID+"<br>"+ 
     instance.con+"<br>"+instance.state+"<br>"+instance.uid+"<br>" 
     } 
     render res 
    } 
+2

感嘆......「不起作用」是什麼意思?有錯誤嗎? – hvgotcodes 2012-08-10 15:17:11

+0

它有什麼作用?拋出錯誤?什麼版本的Grails?你如何調用'populateDB' - 通常的地方是檢查BootStrap.groovy中的開發模式並在那裏插入數據。另外,嘗試'instance.save(failOnError:true,flush:true)',因爲這可能是一個驗證問題? – 2012-08-10 15:18:07

+0

不,沒有錯誤,但沒有數據庫在分貝! – Reza 2012-08-10 15:20:05

回答

1

的第一件事就是嘗試使用:instance.save(flush: true,failOnError:true)。默認情況下,當域不是字段約束時,Grails不會引發異常。也許實例在驗證時被拒絕並且不會被保存。