Как восстановить SQL-запрос из ResultSet - PullRequest
4 голосов
/ 13 июля 2010

Где-то в JBoss в спящем запросе я улавливаю ошибку, которая оставляет меня с ResultSet.Этот код подключен к пользовательскому типу данных.

Было бы неплохо, если бы я мог просто сделать rs.getStatement (). ToString () и покончить с этим, но это, к сожалению, ничего не даетSQL-оператор, который вошел в это.

Я думал что-то сделать с ((PreparedStatement) rs.getStatement ()). getMetaData ().

Я действительно хотел бы, чтобы hibernate был немного большеинформативный, когда он сталкивается с ошибками.У кого-нибудь есть хорошее решение, чтобы помочь определить, какая таблица и какой столбец использовались при возникновении исключения?

Ответы [ 3 ]

2 голосов
/ 13 июля 2010

Просто включите ведение журнала SQL в свойствах конфигурации Hibernate, установив для свойства hibernate.show_sql значение true.

Это более надежно, чем изучение метаданных наборов результатов, поскольку предложение where недоступно.

1 голос
/ 13 июля 2010

Одним из способов отладки Hibernate является включение подробного ведения журнала.

Например, вы можете регистрировать все операторы SQL в том виде, как они выполняются, включив ведение журнала для org.hibernate.SQL.Отсюда вы сможете сузить последний оператор, выполненный до вашего исключения.

Документация может быть найдена здесь .

0 голосов
/ 13 июля 2010

получение метаданных для ResultSet не позволит вам получить информацию, которая была передана. В Hibernate операторы могут выводиться в файл журнала.

Большинство драйверов JDBC позволяют вам настроить трассировку, чтобы вы могли отлаживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...