如何删除项目?

时间:2011-09-20 06:49:30

标签: database hibernate grails

您好我在grails应用程序中有2个域名,这是相关的,当我尝试删除项目时,我遇到了问题。

Event {
       String eventName;
       Date eventDate;
       Fee eventFee ; 

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

Fee{
   String feeName ; 
   ..... 
}

我的问题是当我试图删除费用时,即使没有附加的事件,它也会引发en erorr:ConstraintException。

如何解决问题以及如何在这两个域之间建立链接?

ps:我使用的是grails 1.2xxx和数据库mysql

2 个答案:

答案 0 :(得分:1)

这可能是因为某些Event对象引用了您尝试删除的Fee对象。您可以通过以下(伪)代码查看事件:

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

然后,您可以为每个事件将eventFee设置为null并删除费用:

event.eventFee = null
fee.delete()

答案 1 :(得分:0)

我认为这种关系是错误的,你应该参考费用

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

   constraints = {
      .... 
   }
}

Fee{

   String feeName ; 
   ..... 
}