【问题标题】:Grails table that links to itself链接到自身的 Grails 表
【发布时间】:2012-08-30 16:28:19
【问题描述】:

我想创建一个链接到自身的 grails 域类。

这篇相关帖子提出了一个解决方案,但我无法让它工作:Grails domain class relationship to itself

一方面,我不明白可比较的作用,并且需要添加一个 int compareTo(obj) 方法。

在我的代码中添加以下内容而不实现 Comparable 编译,但 grails 在运行时崩溃:

//NavMenu parent
SortedSet subItems
static hasMany = [subItems: NavMenu]
static belongsTo = [parent: NavMenu]
static constraints = { parent(nullable:true) }

提前致谢

【问题讨论】:

    标签: grails one-to-many many-to-one


    【解决方案1】:

    当您使用SortedSet 时,会在内部执行排序算法,但它需要排序标准。您需要实现Comparable 接口,因为这是为内部算法提供排序标准的标准方式。

    如果您不需要特定的订单,您可以删除SortedSet subItems 这一行,从而避免实现Comparable 接口。

    【讨论】:

      【解决方案2】:

      如果你不想使用 Comparable 接口,也许你应该使用 List 而不是 SortedSet。

      使用列表,您可以按照添加的顺序保存对象,并能够像数组一样通过索引来引用它们。

      这是来自官方文档的示例:

      class Author {
          List books
      
          static hasMany = [books: Book] 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 2017-10-27
        • 1970-01-01
        • 1970-01-01
        • 2011-12-21
        • 2011-01-15
        • 2014-05-13
        相关资源
        最近更新 更多