Това не е ли работа за NamingStrategy ?
Ще получите името на управлявания обект (т.е. клиент) и трябва да решите използваното име на таблицата (entityName.toLowerCase()
във вашия случай).
Едно нещо, в което не съм сигурен, е дали NamingStrategies се вземат предвид при генериране на таблици (hbm2ddl).