Я пытаюсь использовать Criteria API в следующем сценарии:
- У меня есть две таблицы,
Schedule
иRoute
(с их классами и отображениями). Route
имеет отношение "многие к одному" сSchedule
.Route
имеет целочисленное свойствоsequence
.
Теперь мне нужно получить все те объекты Schedule, связанные объекты Route которых удовлетворяют следующему условию:
route.sequence=no. of all Route objects associated with the given Schedule object
Я пробовал для него следующий код Criteria:
Criteria crit = getSession().createCriteria(getPersistentClass())
.createCriteria("routes", "route")
.setProjection(Projections.projectionList()
.add( Projections.rowCount(), "routeCount"))
.add(Restrictions.not(Restrictions.ltProperty("route.sequence", "routeCount")));
Но он генерирует следующий sql:
select count(*) as y0_
from schedule this_
inner join route route1_ on this_.ID=route1_.scheduleId
where route1_.sequence<y0_
и выдает следующую ошибку:
Unknown column 'y0_' in 'where clause'
Пожалуйста, помогите мне, если у вас есть какие-либо предложения.