Из двух, первый лучше, где вы будете экономить память. Если вы хотите удалить сущность и у вас есть идентификатор, написание HQL является предпочтительным.
В вашем случае есть третий и лучший вариант,
Попробуйте ниже,
//constructs the list of ids using String buffer, by iterating the List.
String idList = "1,2,3,....."
Query q = createQuery("delete from session_context where id in (:idList) ");
q.setString("idList", idList);
q.executeUpdate();
Теперь, если в списке 4 элемента, будет запущен только один запрос, ранее было бы 4.
Примечание: - Чтобы вышеприведенное сработало, session_context
должна быть независимой таблицей.