Если вы говорите о статических запросах, использующих динамические аргументы, синтаксис будет
select f from Foo f where f.bar = ? and f.zim = ?
или с именованными параметрами
select f from Foo f where f.bar = :bar and f.zim = :zim
Если вы говорите о полностью динамически создаваемых запросах, основанных на наборе критериев, то используемый API - это ... Criteria API.
Оба в значительной степени описаны в справочной документации по Hibernate.