Sim,
left()
não é suportado pelo MySQLDialect
. Veja a lista de funções compatíveis com HQL em Documentos da API
. Agora você deixou com 2 opções.
- Use
session.createSQLQuery()
método. - Crie seu próprio
Dialect
classe estendendo oMySQLDialect
e registre a função lá. Isso é dito no fórum de hibernação aqui explicado bem em uma postagem no blog aqui .