У меня есть фильтр гибернации, который нужно оценивать, используя два разных столбца в базе данных. У меня есть другой существующий объект hibernate, который содержит оба этих поля, и я хотел бы иметь возможность передавать другой объект hibernate в вызов session.enableFilter.setParameter () вместо передачи обоих значений, содержащихся в нем по отдельности. *
В частности, я хотел бы заменить этот код:
session
.enableFilter("inLocation")
.setParameter("traversalLeft", 5)
.setParameter("traversalRight", 10);
с этим кодом:
session
.enableFilter("inLocation")
.setParameter("location", locationHibernateObject)
чтобы лучше изолировать то, что нужно фильтру.
Но когда я пытаюсь настроить фильтр как:
@FilterDef(name="inLocation", parameters=@ParamDef( name="location", type="com.example.Location" ) )
@Filters( {
@Filter(name="inLocation", condition="current_location_id in (select location.id from location where location.traversal_left between :location.traversalLeft+1 and :location.traversalRight)")
} )
public class ClassToFilter {
Я получаю сообщение об ошибке, пытаясь вызвать enableFilter ()
Это даже возможно? Что я делаю не так?