您的位置:首页 > 大数据 > 人工智能

Grails OneToMany Set 排序

2013-12-16 23:15 344 查看
大家都知道在Hibernate中OneToMany 关系映射是可以选择映射的集合是什么类型的,例如Set 或者List 这里不多做介绍.

最近项目开发使用基于Groovy语言的Grails框架,在domain层实体进行OneToMany关系映射的时候默认,选择的是集合Set,这样导致,我们在自动取得Many对象值是,每次都是不同的顺序,这是我们所不希望的.解决这个方式大致有3种办法:例如 User OneToMany Book

1:在User static mapping 中对 Many 设置排序规则

class User {

    String name

    String password

    static constraints = {

        name nullable: true,null:true

        password nullable: true,null:true

    }

    static hasMany = [books:Book]

    static mapping = {

        books sort: 'id', order: 'desc'

    }

}

class Book {

    String name

    static constraints = {

       name nullable: true,null:true

    }

}

2: 把User 中的Book设置成SortedSet

class User {

    String name

    String password

    SortedSet books

    static constraints = {

        name nullable: true,null:true

        password nullable: true,null:true

    }

    static hasMany = [books:Book]

    static mapping = {

        books sort: 'id', order: 'desc'

    }

}

class Book {

    String name

    static constraints = {

        name nullable: true,null:true

    }

}

3 把book 设置成List

class User {

    String name

    String password

    List books

    static constraints = {

        name nullable: true,null:true

        password nullable: true,null:true

    }

    static hasMany = [books:Book]

    static mapping = {

        books sort: 'id', order: 'desc'

    }

}

class Book {

    String name

    static constraints = {

        name nullable: true,null:true

    }

}

具体问题可以灵活选择.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息