我一直在使用以下代码对域的结果进行排序
vpisort.sort{it.price}
我想知道我是否可以使用类似的东西
vpisort.sort{it.price-it?.discount}
我一直在使用以下代码对域的结果进行排序
vpisort.sort{it.price}
我想知道我是否可以使用类似的东西
vpisort.sort{it.price-it?.discount}
我找到了这个帖子。您可以尝试在您的情况下使用它:
vpisort.sort { a, b -> a.price <=> b.price ?: a?.discount <=> b?.discount }
它首先比较价格,然后只有当 a 和 b 按价格相等且结果为零时,才使用 Elvis 运算符比较 a 和按折扣。
嗯。这不是一个 grails,而是一个时髦的问题。考虑到这一点,解决方案很简单:
打开 groovy 控制台并尝试一下。或查看以下示例:
http://groovy.codehaus.org/JN1015-Collections
SO上还有另一个像这样的问题:
Groovy list.sort 按第一个,第二个,然后是第三个元素
希望有帮助!
更新:如果您想为您的域类设置默认排序顺序,请查看此 GORM 功能:http://grails.org/doc/latest/guide/single.html#ormdsl(5.5.3 默认排序顺序)