CreateCriteria с прогнозами не выбирает все столбцы

Мой вопрос точно такой же, как Проекции Grails не возвращают все свойства и не сгруппированы

У меня есть следующие критерии

def sharedDocumentsInstanceList SharedDocuments.createCriteria().list(params){
   createAlias('receiver', 'r')
   createAlias('author', 'a')
   eq("r.id",session.uid)  
   projections{
      groupProperty("a.id")
      property("a.firstName","firstName")
      property("a.lastName","lastName")
      property("a.emailAddress","email")
   }
}

Где sharedDocuments определяется следующим образом

class SharedDocuments {
   Users author
   Users receiver
   Documents file
}

Я видел, что у sharedDocumentsInstanceList всегда есть только последнее свойство, упомянутое в проекции. Я могу использовать тот же запрос в «withCriteria», но я, кажется, теряю классное совершенство автоматической разбивки на страницы с ним, потому что withCriteria не возвращает выгружаемый pagedresultlist!


person Sap    schedule 06.03.2013    source источник
comment
createAlias('получатель', 'r') createAlias('автор', 'а') этот материал очень помогает!   -  person Daniel Adenew    schedule 09.10.2013
comment
Я открыл JIRA для этой проблемы. jira.grails.org/browse/GRAILS-10589   -  person cantoni    schedule 25.09.2015


Ответы (2)


Ради тех, у кого все еще есть эта проблема; Удалите предоставленный объект params в методе списка. Таким образом, приведенный выше запрос критериев становится следующим:

def sharedDocumentsInstanceList = SharedDocuments.createCriteria().list {
    createAlias('receiver', 'r')
    createAlias('author', 'a')
    eq("r.id",session.uid)  
    projections {
        groupProperty("a.id")
        property("a.firstName","firstName")
        property("a.lastName","lastName")
        property("a.emailAddress","email")
    }
    maxResults(params.max)
    firstResult(params.offset)
    order(params.sort, params.order)
}
person jgithaiga    schedule 30.10.2013
comment
Вы можете добавить resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP), если предпочитаете знакомый результат запроса, похожий на Grails. - person jgithaiga; 30.10.2013

    projections{                
        author {
           groupProperty("id")
           property("firstName","firstName")
           property("lastName","lastName")
           property("emailAddress","email")
        }
    }

Приведет ли вышеописанный подход к другим результатам? Просто мысль...

person David Brown    schedule 06.03.2013
comment
Нет, я избавился от счетчика и написал критерии, как вы предложили, но он по-прежнему печатает только адрес электронной почты. - person Sap; 07.03.2013