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

Как это сделать, чтобы я вернул все прогнозы снизу

def c = Company.createCriteria()
def a = c.list(params){
    projections{
        property 'id', property 'name'
    }
 }

 if(a.size() == 0)
     render "404"
 else {
     render (contentType: 'text/json'){
          totalCount = a.totalCount
          data = a
     }
  }

Результат выходит такой:

{"totalCount":2,"данные":["компания1","компания2"]}

Где мне это нужно:

{"totalCount":2,"data":[{"класс":"org.example.Company","id":1,"name":"company1"},{"класс":"org.example. Компания","id":2,"имя":"company2"}]}

В домене компании у меня много отношений (один к одному, один ко многим и т. д.), мой домен выглядит следующим образом:

пакет org.example

импортировать java.sql.Timestamp

class Company {

String name
String abn
String cname
String email
String phone
String position
String address
String city
String postcode
int style
int openbookings;

Date date;

int tokenTotal = 0

int totaltokens
int totalboosts
int totalposts
Timestamp tokenstamp

static hasMany = [users: User, broadcast: Broadcast, bookings: Booking, locations: Location,vimsurvey:VimSurvey,rewards: Reward, tokens: CompanyToken]


static constraints = {
    abn nullable: true
    date nullable: true
    style nullable: true
}
}

Любая помощь будет здорово :) ????


person Tyler Evans    schedule 17.12.2012    source источник
comment
Вы когда-нибудь находили ответ на этот вопрос? У меня есть аналогичный вопрос здесь stackoverflow.com/questions/15250974/   -  person Sap    schedule 07.03.2013


Ответы (1)


http://grails.org/doc/1.1/ref/Domain%20Classes/createCriteria.html

См. раздел свойств в проекциях: 'property Возвращает заданное свойство в возвращаемых результатах'. Я действительно не понимаю, о чем вы просите «все прогнозы».

Вы просто хотите найти все для своего домена? Почему вы используете проекцию?

def a = c.list(params){
projections{
    property 'id', property 'name'
}
}

должно быть

def a = c.list(params){
projections{
    property 'id'
    property 'name'
}
}

Фактически, я получаю ошибку компиляции, когда пытаюсь сделать это по-вашему. Я по-прежнему считаю, что имеет смысл просто получить весь домен целиком, если нет очень конкретной причины этого не делать.

person Joseph    schedule 17.12.2012
comment
я хочу проецировать как идентификатор, так и имя, но по какой-то причине при тестировании функции проецируется только имя.... - person Tyler Evans; 18.12.2012
comment
привет Джозеф спасибо за помощь ... это все еще ничего не делает - я понятия не имею, почему? Я хочу вернуть только идентификатор и имя, а не все остальное из моего домена (отсюда и прогнозы). В домене много элементов, и поэтому, если я вообще не использую проекции ... он возвращает все (огромный файл), и когда я просто проецирую идентификатор, имя, как вы показали мне выше, я получаю проблему в своем исходном вопросе. .. - person Tyler Evans; 19.12.2012
comment
Я бы добавил журнал SQL в ваш код, чтобы увидеть, что распечатывает запрос. stackoverflow.com/questions/2568507 / - person Joseph; 19.12.2012