У меня есть класс с hasMany на Лонг:Grails HasMany на Лонг
class Test {
static hasMany = [longList:Long]
}
Я хочу, чтобы фильтровать по лонг с критериями:
Test.createCriteria().list{
'in'('longList',[Long.valueOf('1')])
}
Я получаю SQLException: Нет значение, указанное для параметра 1.
SQL выглядит следующим образом:
select * from test this_ where this_.id in (?)
я пытался что-то вроде:
createAlias('labours', 'l')
eq('l',Long.valueOf(filter.labourId)))
или
eq('labours.value', Long.valueOf(filter.labourId))
Но я не могу заставить его работать.
Для решения проблемы я сделал бы другой домен Класс:
class Test {
statis hasMany=[longList:TestLongList]
}
class TestLongList{
Long longListItem
static belongsto = [test:Test]
}
Это должно работать, но я всегда должен создать TestLongList Instance, если я создаю тестовый объект, поэтому код превратится из:
test.addToLongList(Long.valueOf('22'))
в
TestLongList tll = new TestLongList
tll.test= test
tll.longListitem = Long.valueOf('22')
tll.save()
test.addToLongList(tll)
есть ли способ, чтобы остаться с Лонг-лист без HQL?
Это сработало для меня, спасибо. – YAT