games = Game.where {
categories.categoryName == currentCategory
platform.platformName == chosenPlatform
status == "okay"
}.list(sort: 'gameTitle', order: "asc", max: max, offset: offset)
所以在这里我按照名字对游戏进行排序,问题是大写字母首先出现,所以Delta在bravo之前出现,应该是另一种方式。你怎么用grails做到这一点?
答案 0 :(得分:2)
您必须使用派生属性
class Game {
String title
static mapping = {
titleUpper formula: 'UPPER(title)'
}
}
和您的列表
games = Game.where {
categories.categoryName == currentCategory
platform.platformName == chosenPlatform
status == "okay"
}.list(sort: 'titleUpper', order: "asc", max: max, offset: offset)
答案 1 :(得分:1)
这纯粹是数据库 - Grails / Gorm / Hibernate生成一个查询,将其发送到您的数据库并处理结果 - 就是这样。如果您的数据库排序区分大小写,那么您有两个选项:
UPPER
子句中使用功能(如LOWER
,ORDER BY
)(例如ORDER BY UPPER(game_title)
有关公式字段的详情,请参阅http://grails.github.io/grails-doc/latest/guide/GORM.html#5.5.2.11%20Derived%20Properties。