Итерация класса домена в граалях - PullRequest
0 голосов
/ 01 сентября 2010

У меня есть следующие отношения между двумя классами домена:

class Emp {
  String name
  hasMany = [itemsell:Item, itembuy:Item]
}

class Item {
   String name
}

И мне нужно знать, какие элементы являются общими для обеих коллекций для данного Emp (itemsell и itembuy);как я могу сделать такую ​​итерацию?

Спасибо

Ответы [ 2 ]

4 голосов
/ 01 сентября 2010

Внесите эти изменения в класс Emp

class Emp {
  String name
  hasMany = [itemsell:Item, itembuy:Item]

  // Modifications
  Collection<Item> getCommonItems() {
      itemsell.intersect(itembuy)
  }    

  static transients = [ 'commonItems' ]
}

Затем вы можете позвонить emp.commonItems, чтобы получить общие предметы.Вы должны добавить commonItems в список transients, чтобы GORM понимал, что это не постоянное свойство

1 голос
/ 01 сентября 2010

Используйте метод findAll для одной из коллекций.Как то так:

def similarItems(itemsell, itembuy) {
   itemsell.findAll{ sell -> itembuy.contains(sell) }
}
...