¿No es el trabajo para NamingStrategy ?
Obtendría el nombre de la entidad administrada (es decir, Cliente) y debería decidir el nombre de la tabla utilizada (entityName.toLowerCase()
en su caso).
Una cosa que no estoy seguro es si NamingStrategies se tienen en cuenta al generar tablas (hbm2ddl).