【问题标题】:How to delete the item?如何删除项目?
【发布时间】:2011-09-20 06:49:29
【问题描述】:

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

Event {
       String eventName;
       Date eventDate;
       Fee eventFee ; 

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

Fee{
   String feeName ; 
   ..... 
}

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

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

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

【问题讨论】:

  • 您能否发布有关该错误的更多详细信息?

标签: database hibernate grails


【解决方案1】:

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

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

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

event.eventFee = null
fee.delete()

【讨论】:

    【解决方案2】:

    我认为关系编码错误,您应该参考费用中

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

    Fee{
    
       String feeName ; 
       ..... 
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多