如何在 GORM 中按排序顺序保存数据
Posted
技术标签:
【中文标题】如何在 GORM 中按排序顺序保存数据【英文标题】:How to persist data in a sorted order in GORM 【发布时间】:2013-11-22 20:18:41 【问题描述】:这是一个新手问题,任何帮助将不胜感激。我有一个类Item
如下。
如何在 Grails/GORM 中按排序顺序保存 Item
s?意思是,如果我这样做了
我应该得到[a, b, c]
。谢谢!
【问题讨论】:
【参考方案1】:保留并不重要,重要的是你检索它的方式,你可以简单地按照以下方式进行
println Item.list().sort()
println Item.list().sort() //write your groovy clouser here to sort asc and dec
【讨论】:
谢谢!但是,我想知道是否有任何方法可以首先按排序顺序保存数据?原因是,如果它是一个有很多行的大表并且如果我非常频繁地检索数据,我认为 sort() 会更慢(因为每次我检索数据时它都会进行排序)。背景是,项目是项目的词汇表,我将不那么频繁地向表中添加新项目,但会非常频繁地检索数据。任何 cmets 将不胜感激。 要以特定顺序保留项目,您可以将您的集合映射为列表。详情请见docs.codehaus.org/plugins/servlet/mobile#content/view/228171330。 谢谢@rcgeorge23。我可以使用 SortedSet 进行自定义排序。我找到了您引用的文档的最新版本 (grails.org/doc/latest/guide/GORM.html#sets,ListsAndMaps)。感谢您提供非常有用的提示!【参考方案2】:将此添加到您的域类中
static mapping =
sort name: "desc" //"asc"
【讨论】:
这很好用,谢谢!不过有一条评论,我必须使用 Item.list(),而不是 Item.getAll()。即使包含映射,getAll() 方法似乎也不会打印排序列表。我喜欢这种映射方法,因为我不必每次检索数据时都进行 sort()。 排序名称:“desc”不保证插入顺序。这是一种自定义查询结果排序依据的默认属性的方法 (grails.org/doc/latest/ref/Database%20Mapping/sort.html) @cantoni:有什么办法可以保证广告的顺序吗?我想我明白你的意思了 - 谢谢你的澄清。以上是关于如何在 GORM 中按排序顺序保存数据的主要内容,如果未能解决你的问题,请参考以下文章