Отключить Hibernate Logs для определенного запроса - PullRequest
3 голосов
/ 18 марта 2010

Можно ли отключить сообщения журнала для определенного запроса в Hibernate / EJB 3.0?

Есть ли способ переопределить параметр "hibernate.show_sql" только для одного запроса?

Ответы [ 2 ]

3 голосов
/ 18 марта 2010

Из конфигурации гибернации я не думаю, что это возможно.

Hibernate дает вам два способа регистрации запроса: установив для параметра hibernate hibernate.show_sql значение true или установив для категории журнала org.hibernate.SQL значение DEBUG. Оба способа независимы, и если вы используете оба, ваши запросы будут зарегистрированы дважды.

Я предпочитаю использовать второй способ: он гораздо более гибкий, потому что вы можете изменить его во время выполнения через консоль jmx (если вы используете jboss, это работает из коробки).
Кроме того, hibernate использует ведение журнала Apache Commons (с hibernate.show_sql, hibernate просто записывает запрос в System.out).

Я думаю, что можно предоставить индивидуальную реализацию Logger для данной категории (я не знаю, насколько это легко или сложно, я никогда не делал этого). Затем вам просто нужно предоставить логику, которая будет решать, регистрировать запрос или нет в вашей реализации Logger.

0 голосов
/ 18 марта 2010

Если это просто запрос, то есть вам не нужны результаты сеанса для других обновлений, вы можете создать отдельную SessionFactory только для этого запроса.

...