Grails 默认排序为“hasMany”域属性

发布于 2024-10-02 06:47:54 字数 636 浏览 6 评论 0原文

我正在尝试使用映射语句设置我的 hasMany 属性的默认排序。我正在关注 grails 文档,但它对我不起作用(grails 1.3.5)。我的代码如下所示:

class Note {
    Calendar    sendDate
    static belongsTo = Message
}

class Message {
    static  hasMany = [notes: Note]
    static mapping = {
        notes sort:'sendDate desc'
    }
}

错误消息如下所示:

...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'notes0_.sendDate' in 'order clause'
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
        at com.mysql.jdbc.Util.getInstance(Util.java:384)
...

您发现我的代码中有任何错误吗?

I'm trying to set default sort of my hasMany attribute using mapping statement. I'm following the grails doc but it doesn't work for me (grails 1.3.5). My code looks like:

class Note {
    Calendar    sendDate
    static belongsTo = Message
}

class Message {
    static  hasMany = [notes: Note]
    static mapping = {
        notes sort:'sendDate desc'
    }
}

The error message looks like:

...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'notes0_.sendDate' in 'order clause'
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
        at com.mysql.jdbc.Util.getInstance(Util.java:384)
...

Do you see any mistakes in my code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

顾忌 2024-10-09 06:47:54

有几件事可能有助于解决该问题:

  • 您真的需要为 sendDate 属性使用 Calendar 吗?大多数时候,人们会使用java.util.Date。将字段类型更改为 Date 是否可以解决问题?
  • 我用您的映射运行了一个示例,但出现错误。尝试将您的 Message 静态 mapping 闭包更改为:

    静态映射 = {
        注释排序:'sendDate',顺序:'desc'
    }
    

A couple things that may help fix the problem:

  • Do you really need to use a Calendar for the sendDate property? Most of the time, one would use a java.util.Date. Does changing the field type to a Date fix the issue?
  • I ran an example with your mappings and got an error. Try changing your Message static mapping closure to this:

    static mapping = {
        notes sort: 'sendDate', order: 'desc'
    }
    
抠脚大汉 2024-10-09 06:47:54

此页面讲述了有关对象关系映射的所有内容,我我的应用程序也有类似的问题。我这样解决了:

class Note implements Comparable {
  Calendar sendDate
  static belongsTo = Message

  int compareTo(obj) {
    sendDate.compareTo(obj.sendDate)
  }
}

希望

class Message {
  SortedSet notes
  static  hasMany = [notes: Note]
}

这有帮助!

This page tells all about Object Relational Mapping, I had a similar problem with my app. I solved it like so:

class Note implements Comparable {
  Calendar sendDate
  static belongsTo = Message

  int compareTo(obj) {
    sendDate.compareTo(obj.sendDate)
  }
}

and

class Message {
  SortedSet notes
  static  hasMany = [notes: Note]
}

Hope this helpes!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文