Если вы попытаетесь манипулировать Query / Critera после закрытия сеанса, который создал Query / Critera, вы получите исключение HibernateException. Исключение скажет: «сессия закрыта».
Так что, если метод «Отдельно» не применим, я бы порекомендовал (мне) всегда возвращать результат, например.
crit.list();
query.list();
вместо получения экземпляра Critera / Query