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
}
}
具体问题可以灵活选择.
最近项目开发使用基于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
}
}
具体问题可以灵活选择.
相关文章推荐
- hibernate映射文件set key one-to-many
- 主题:请教hibernate中many-to-many的Set 排序问题
- Hibernate 返回排序的one-to-many 集合
- 怎样配置one- to-many中的Set
- Grails完美解决一对多(One to many)Model动态表单的自动组装
- Hibernate学习笔记(3)Hibernate映射文件之set key one-to-many
- hibernate/ many to many /one to one/Iterator//Set
- one-to-many relationships in Grails forms
- Grails完美解决一对多(One to many)Model动态表单的自动组装
- one-to-many 中的set不能用hashset
- 为什么Hibernate的OneToMany用Set集合而不用list
- 解决javax.persistence.OneToMany.orphanRemoval()Z异常办法
- hibernate annotations OneToMany与ManyToOne 分析
- nhibernate one to one,one to many
- Nhibernate中 Many-To-One 中lazy="proxy" 延迟不起作用的原因
- Collection has neither generic type or OneToMany.targetEntity() defined
- 6、Many-to-one的单向
- hibernate学习2之many-to-one
- many-to-one/one-to-many/many-to-many关系映射 (Hibernate)
- Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z