【问题标题】:Grails/Gorm : Sorting hasMany relationshipGrails/Gorm:排序hasMany关系
【发布时间】:2015-03-16 06:23:14
【问题描述】:

我有一个具有“hasMany”关系的域类,我想对其进行排序,以便在检索时结果保持一致。下面是域类的示例。

class Author {

    static hasMany = [ books: Book ]

    static mapping = {
        books sort: 'title', order: 'asc'
    }
}

这会产生以下错误。

不支持关联 [Author->books] 的默认排序 单向一对多关系。

在这个例子中我如何对标题进行排序?

我已经能够在另一个 hasMany 关系上实现排序。任何反馈将不胜感激。

【问题讨论】:

    标签: grails grails-orm


    【解决方案1】:

    正如错误提示,您需要将关系设置为双向才能使默认顺序起作用,

    只需在Book 域中添加以下内容

    static belongsTo = [author:Author] 如果您需要默认排序顺序才能工作。

    【讨论】:

    • 还有其他选择吗?上面的代码是一个简化的例子,无法添加belongsTo声明。
    • 您是否添加属于图书?
    • 我也不能在单向关系中使用 belongsTo。我使用了一个名为 Messages 的域,该域用于 multipe 表,因此无法使用 belongsTo。除了基于降序字段的消息中的默认排序之外,一切正常
    【解决方案2】:

    检查它是否适合你

    class Author {
        SortedSet books  // add this to your Author domain
    
        static hasMany = [books: Book]
    } 
    
    class Book implements Comparable {
        String title
    
        int compareTo(obj) {
            title.compareTo(obj.title)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 2010-12-22
      相关资源
      最近更新 更多