Что ж, если вы хотите получить список сущностей, соответствующих некоторым условиям, вам нужно как-то выполнить запрос.Hibernate предлагает несколько способов сделать это:
Вариант 1: Использование языка запросов Hibernate.HQL близок к SQL за исключением того, что вы работаете с объектами и ассоциациями, а не с таблицами.HQL также переносим (SQL генерируется в зависимости от диалекта).Это традиционный путь.
Query q = session.createQuery("from foo Foo as foo where foo.name=:name");
q.setParameter("name", "bar");
List foos = q.list();
Вариант 2: Использование Criteria API.При использовании Criteria API вы пишете запросы с использованием объектно-ориентированного API.Этот API особенно хорош для динамических запросов.Запросы критериев также переносимы.
List cats = session.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.add( Restrictions.between("weight", minWeight, maxWeight) )
.list();
Опция 3: Использование собственных запросов SQL.Обычно вы используете собственный SQL, только если вы хотите использовать специфичные для базы данных функции.
List cats = session.createSQLQuery("SELECT * FROM CATS").addEntity(Cat.class);
Я бы, вероятно, использовал HQL в вашем случае. Глава 14. HQL: язык запросов Hibernate
Глава 15. Критерии запросов Глава 16. Собственный SQL