Встречается на собеседованиях • сегодня

Как отладить HQL-запрос

Для отладки HQL-запросов можно использовать несколько подходов:

  1. Логирование SQL – включите логирование SQL в Hibernate:
properties
# Для Hibernate 5+
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.use_sql_comments=true
# Для Spring Boot
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
  1. Проверка синтаксиса – преобразуйте HQL в SQL для проверки:
java
QueryTranslatorFactory translatorFactory = new ASTQueryTranslatorFactory();
QueryTranslator translator = translatorFactory.createQueryTranslator(
    hqlQuery, hqlQuery, Collections.emptyMap(), (SessionFactoryImplementor) sessionFactory);
translator.compile(Collections.emptyMap(), false);
String sql = translator.getSQLString();
  1. Использование StatelessSession – для пошагового выполнения:
java
StatelessSession session = sessionFactory.openStatelessSession();
Query query = session.createQuery("FROM Entity WHERE field = :param");
query.setParameter("param", value);
List results = query.list();
  1. Тестирование в Hibernate Console – если используете IDE с Hibernate Tools.

  2. Разбиение сложных запросов – выполняйте части запроса по отдельности.

Для параметризованных запросов всегда проверяйте правильность биндинга параметров.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы