2010-08-31 2 views
0

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

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

class Item { 
    String name 
} 

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

Thanks

ответ

4

сделать эти изменения в классе 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 понимал, что это не постоянное свойство.

+0

Не знал о пересечении .. Люблю это! –

+0

Теперь это элегантность ... спасибо – xain

1

Используйте метод findAll в одной из коллекций. Что-то вроде этого:

def similarItems(itemsell, itembuy) { 
    itemsell.findAll{ sell -> itembuy.contains(sell) } 
} 
Смежные вопросы