API за критерии дефинира function expression за изпълнение на собствени SQL функции в CriteriaBuilder интерфейс, както следва:
<T> Expression<T> function(String name, Class<T> type, Expression<?>... args);
където name е името на SQL функцията, type е очакваният тип връщане и args е променлив списък от аргументи (ако има такива).
Ето пример как да го използвате в заявка за критерии:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery(String.class);
Root<RadExamTimes> root = cq.from(RadExamTimes.class);
cq.select( cb.function("to_char", String.class, root.get("begin_exam"), cb.literal("MM/DD/YYYY")));
TypedQuery<String> query = entityManager.createQuery(cq);
List<String> result = query.getResultList();
където
RadExamTimes:хипотетичен коренен обектMM/DD/YYYY:специфичен за базата данни формат (в този пример Postgresql формат за дата; за Oracle използвайте Ora формат и т.н.)to_char:Функция Postgresql за преобразуване на стойност на дата в низbegin_exam:полето за дата, което трябва да бъде форматирано
Форматиращият низ не може да бъде предаден такъв, какъвто е, така че literal() се използва метод за обвиване.
Забележка:Горният пример е тестван върху MySQL база данни с MySQL функция и съответния формат на датата; но примерът е променен, за да съответства на синтаксиса на Postgresql.