Если это происходит в тестовом классе, убедитесь, что вы не забыли аннотировать класс.
Например, в Spring Boot:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyTests {
....
Нет. По крайней мере, не так, как вы просили. Как только вы попросите Hibernate попасть в базу данных (с помощью метода list()
), Hibernate сделал свою часть, и результаты теперь находятся в ваших руках. Вы можете реализовать логику фильтрации в своем коде для последующей обработки результатов.
Тем не менее, можно отфильтровать результаты в самом запросе. Если вы зададите фильтр Hibernate и включите его для конкретной модели / запроса, вы сможете сохранить исходный запрос HQL, а Hibernate добавит его с дополнительными where
предложениями для дальнейшего фильтрации результатов. См. Это:
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/filters.html
Лучшим способом было бы использовать Criteria . Вот пример из Hibernate Documentation, который объясняет использование критериев .
Критерии будут использоваться до вызова метода списка.
Надеюсь, что это помогает.