createSQLQuery - предназначен для собственного запроса sql, который выбран вами с помощью jdbc-драйвера cfg или что-то еще.
createQuery - для запросов на гибернацию, который предоставляет вам независимый запрос, который заставляет вас запускать это на многих базы данных с использованием API и другие преимущества.
createCriteria - лучше использовать для простого запроса на db из-за его простоты.
Надеюсь, это вам поможет!