2016-02-12 83 views
0
games = Game.where { 
    categories.categoryName == currentCategory 
    platform.platformName == chosenPlatform 
    status == "okay" 
}.list(sort: 'gameTitle', order: "asc", max: max, offset: offset) 

所以在這裏我選它的名字遊戲,問題是大寫字母至上所以三角洲來自布拉沃這應該是反過來了。你如何在Grails中做到這一點?Grails的排序忽略大小寫敏感

回答

1

這是純粹的數據庫 - Grails/Gorm/Hibernate生成一個查詢,將它發送到您的數據庫並處理結果 - 就是這樣。如果你的數據庫種類的區分大小寫的,那麼你有兩種選擇:

  • 設置列(或整個數據庫如果可能的話)是不區分大小寫。
  • 使用的功能(如UPPERLOWER)的ORDER BY子句中(如ORDER BY UPPER(game_title)

更多見http://grails.github.io/grails-doc/latest/guide/GORM.html#5.5.2.11%20Derived%20Properties的公式字段。

+0

嗨,我不能在Grails文檔中看到ORDER BY,你如何實現它?我做,列表(排序:ORDER BY UPPER(game_title),order:「asc」,max:max,offset:offset)? –

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)