Grails: отображение сортировки объекта домена не работает - PullRequest
1 голос
/ 28 апреля 2020

Вот мой объект домена:

package org.olr.nonadmin
import org.olr.admin.User

class Question {
//  Integer id // autogenerated by db
//  Integer version // autogenerated integer
    Date dateCreated  // auto filled
    Date lastUpdated  // auto filled
    String qText        // question text - can contain markup!
    String aText        // answer text - can contain markup!
    boolean publik      // public to all usersot needed
    String figureBase64 // image in BASE64 format, used in data-URI for figure
    String figureName   // figure name (for documentation)
    Integer format      // how to format for projector display
    Integer difficulty  // e.g. 1 (easy), 2 (medium), 3 (hard)
    Integer gradeLevel  // grade: 5,6,7,8,9

    static belongsTo = [owner: User]
    User owner;         // filled by controller save() method

    static constraints = {
        id generator: 'identity'
        owner nullable: false, editable: false
        qText sqlType: 'text', nullable: false, widget: 'textarea'
        aText sqlType: 'text', nullable: false
        figureBase64 sqlType: 'text', nullable: true, blank: true, maxSize: 1024*12
        figureName nullable: true, blank: true
        format min: 0, max: 5, sqlType: 'smallInt', nullable: true, blank: true
        difficulty min: 1, max: 4, sqlType: 'smallInt', nullable: true, blank: true
        gradeLevel min: 6, max: 8, sqlType: 'smallInt', nullable: true, blank: true
    }

    static mapping = {
        sort id: "asc"
    }

    @Override
    String toString() {
        return "${id}"
    }

}

Обратите внимание, что я хочу, чтобы все запросы Hibernate возвращали объекты Вопроса в id порядке.

Вот служба, с помощью которой данные извлекается из таблицы вопросов:

package org.olr.nonadmin

import grails.gorm.services.Service
import org.olr.admin.User

@Service(Question)
interface QuestionService {

    Question get(Serializable id)
    List<Question> list(Map args)
    List<QuestionFile> findByOwner(User owner)  // Added, but implemented by GORM service
    Long count()
    void delete(Serializable id)
    Question save(Question question)

}

Когда мое представление индекса извлекает данные (которые из-за редактирования изменили физический порядок строк на диске), данные не отображаются в порядке id:

enter image description here

Данные в том порядке, в котором возвращается необработанный оператор SELECT:

enter image description here

Почему игнорируется

    static mapping = {
        sort id: "asc"
    }

?

Grails ver. 3.3.1 POSTGRES версия 11.2

Примечание: я пытался использовать dateCreated в качестве ключа сортировки - не повезло. Также безуспешно пробовал qText в качестве ключа сортировки.

...