Я использовал этот трюк:
List statuses = new ArrayList();
Criteria criteria = session.createCriteria(MessageQueue.class);
criteria.add(Restrictions.not(Restrictions.in("message_status", statuses)));
и этот код создает:
...from MESSAGE_QUEUE mq where not (mq.message_status in (?, ?, ?, ?))...
но мне нужно:
...from MESSAGE_QUEUE mq where mq.message_status NOT IN (?, ?, ?, ?)
Ду, вы думаете, что они равнызаявления?