Grails много-к-одному выставляют id без ленивой нагрузки? - PullRequest
2 голосов
/ 31 марта 2011

Grails - Как я могу предоставить идентификатор свойства ассоциации многие-к-одному, не форсируя загрузку всего объекта?

class Task {
  User belongsTo
  User createdBy
}
class User {
  ...
}

Можно ли получить идентификаторы пользователя из задачи, не вызывая ленивыхзагрузка всего объекта User?Есть ли способ сделать это в целом, или это будет включать в себя пользовательский запрос для каждого класса?На самом деле это требует, чтобы объекты DTO возвращались через BlazeDS - все, что мне нужно, это идентификаторы, а не связанные объекты обязательно.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2013

Видимо, вам нужно использовать магическую нотацию ownToId и создалById - см. GRAILS-2570

0 голосов
/ 01 апреля 2011

В Grails по умолчанию включена отложенная привязка, поэтому вам не нужно беспокоиться о загрузке всех связанных объектов, если только вы не активируете активную выборку.Более того, вы можете использовать именованные запросы или проекции критериев гибернации: например,

 def taskCriteria = Task.createCriteria()  
 def users = taskCriteria.list{//or get
     projections {
         property "id"
     } 
     user{
         eq("userName", "Joe")
     }   
 }

. Приведенное выше будет получать только идентификатор задачи для пользователя с именем Joe.

...