SQL functions can be referenced in many ways by users. However, not all databases support the same set of functions. Hibernate, provides a means of mapping a logical
function name to a delegate which knows how to render that particular function, perhaps even using a totally different physical function call.
Technically this function registration is handled through the
org.hibernate.dialect.function.SQLFunctionRegistry class which is intended to allow users to provide custom function definitions without having to provide a custom dialect. This specific behavior is not fully completed as of yet.
It is sort of implemented such that users can programmatically register functions with the
org.hibernate.cfg.Configuration and those functions will be recognized for HQL.