我想弄清楚如何在Grails 3中的多個字段進行排序,其中之一可能或不可以爲空。我有這本書域名:排序在GORM的可空字段
3210書籍中包含「外設」的標題有一個sortTitle
「外設,」否則sortTitle
將是無效的。如果存在sortTitle
,我需要按title
排序。
我發現了其他類似的SO問題,但都沒有可空字段。有沒有人碰巧有一些指向正確的方向?
我想弄清楚如何在Grails 3中的多個字段進行排序,其中之一可能或不可以爲空。我有這本書域名:排序在GORM的可空字段
3210書籍中包含「外設」的標題有一個sortTitle
「外設,」否則sortTitle
將是無效的。如果存在sortTitle
,我需要按title
排序。
我發現了其他類似的SO問題,但都沒有可空字段。有沒有人碰巧有一些指向正確的方向?
我不能完全弄清楚如何與GORM做純粹的,但一些生HQL工作:
def books = Book.findAll("from Book as b order by coalesce(b.sortTitle, b.title)")
我不是100%肯定在這,但在我看來,通過排序COALESCE會導致數據庫進行文件分類,這可能相當昂貴,而不能夠使用索引。
我的建議是總是用你想排序的名字填充sortTitle,然後使用它。
是的,我正在琢磨數據庫的影響。這只是一個學習Grails的練習,我想解決這個問題,但對於一個現場製作應用程序,如果創建對象時'sortTitle'留空,我可能會將'sortTitle'設置爲'title'的值。 –