как получить более одного столбца с помощью createcrieteria - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть класс домена, и я хочу запросить только некоторые поля.Как мне это сделать, используя критерии создания.

Я использую этот критерий, это работает, но как мне получить другой столбец в выводе?

def cartitem=CartOrder.createCriteria().listDistinct{
                eq("id",cartid)
                vendorproductinfo
                {
                    eq('vendor',vendor)
                    projections{
                        property("productItem") 
                    }
                }
            }

1 Ответ

1 голос
/ 14 февраля 2012

Вы получаете только столбец productItem в результатах из-за этой проекции:

projections{
  property("productItem") 
}

Если вы хотите, чтобы весь объект CartOrder был возвращен, просто удалите это:

def cartitem = CartOrder.createCriteria().listDistinct {
  vendorproductinfo {
    eq('vendor', vendor)
  }
}

Обновление

Исходя из вашего комментария ниже, кажется, что в действительности вы хотите получить результаты Vendorproductinfo.productItem и Vendorproductinfo.price.Если вам не нужно какое-либо из полей CartOrder, то я думаю, что вы можете полностью удалить его из запроса.

Должно работать что-то вроде следующего (хотя я не уверен на 100%, чтоЯ понимаю, что вы после):

def results = Vendorproductinfo.createCriteria().listDistinct {
  eq('vendor', vendor)
  projections{
    property("productItem") 
    property("price") 
  }      
}
...