2011-09-20 107 views
0

嗨我有2個域在Grails應用程序,這是相關的,當我試圖刪除項目時,我得到了問題。如何刪除該項目?

Event { 
     String eventName; 
     Date eventDate; 
     Fee eventFee ; 

     constraints = { 
      .... 
      eventFee(nullable:true); 
     } 
    } 

Fee{ 
    String feeName ; 
    ..... 
} 

我的問題是,當我試圖刪除的費用,即使沒有事件連接到的是,它將引發EN erorr:ConstraintException。

如何解決問題以及如何鏈接這兩個域?

PS:我使用的Grails 1.2xxx和mysql數據庫

+1

你能發佈有關錯誤的更多細節嗎? –

回答

1

這可能是因爲您試圖刪除的收費對象被一些事件的對象引用。您可以通過以下的(僞)代碼,請參閱事件:

def fee = Fee.get(<id>) 
Event.findAllByEventFee(fee).each { 
    println it 
} 

然後,您可以設置eventFee爲null每個事件,並刪除費:

event.eventFee = null 
fee.delete() 
0

我覺得關係編碼錯誤,你應該refered到費用

Event { 
    String eventName; 
    Date eventDate; 
    static hasOne=[eventFee:Fee] ; 

    constraints = { 
     .... 
    } 
} 

而且

Fee{ 

    String feeName ; 
    ..... 
}