I would like to traverse two lists of instances of a specific domain class using grails 1.3.7.
The problem is that instances of the same list are created by javasisst, so the intersection result is always empty.
Here are my domains:
class User { ... static hasMany = [foos : Foo] ... } class Foo { ... static hasMany = [bars : Bar] ... } class Bar { ... static hasMany = [localizedTitles : LocalizedTitle] ... }
I get a list of all Bar user instances as follows:
def allBarsOfUser = userInstance.foos.bars.flatten()
And try intersecting with another list of Bar instances:
def intersectedBars = bars.intersect(allBarsOfUser)
The problem is that the element type is allBarsOfUser ist Bar_$$_javassist_139 , and the element type of bars is Bar , so intersectedBars always [] .
I solved my problem by doing the following - but I don't like the solution:
def allBarsOfUser = userInstance.foos.bars.flatten().collect{Bar.get(it.id)}
What would be the best solution?
How do I make Bar_$$_javassist_139 to Bar so that intersect() works fine?
aiolos
source share