Org.hibernate.Exception.SQLGrammarException: не удалось извлечь ResultSet. Причина: java.sql.SQLSyntaxErrorException: ORJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Org.hibernate.Exception.SQLGrammarException: не удалось извлечь ResultSet. Причина: java.sql.SQLSyntaxErrorException: OR

Сообщение Anonymous »

Я переношу приложение из Hibernate 4 в Hibernate 5.
У меня есть фрагмент кода, который я не трогал:

Код: Выделить всё

public Integer getCount(QueryBuilder query) {
Criteria criteria = getDao().buildCriteria(Summary.class, query);
criteria.setProjection(count("id"));
return ((Long) criteria.list().get(0)).intValue();
}
В журналах, когда это вызывается, я вижу:

Код: Выделить всё

ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - "ORA-00904: "THIS_"."CREATED_BY_USER_ID": invalid identifier
"
ERROR controllers.UncaughtExceptionHandler - "Uncaught exception [org.hibernate.exception.SQLGrammarException] in handler [org.springframework.web.method.HandlerMethod] message [could not extract ResultSet > ORA-00904: "THIS_"."CREATED_BY_USER_ID": invalid identifier
]"
org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)

Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "THIS_"."CREATED_BY_USER_ID": invalid identifier

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
Мне удалось подключить отладчик к этому фрагменту кода и сравнить старую версию критериев и запроса, которая работает (спящий режим 4), и новую версия критериев и запроса, которая не работает (спящий режим 5).
Я вижу, что они одинаковы, поэтому единственная разница, которую я вижу, - это версия критериев. Один if из hibernate.core 4, а второй — из hibernate.core 5.
Когда я выполнял оценку в отладчике для Criteria.list() Я получил правильный ответ в спящем режиме 4, и когда я оцениваю критерии.list() в спящем режиме 5, то уже в отладчике я вижу ошибку ORA-00904.
Что изменилось между Hibernate 4 и Hibernate 5 в этом случае?

Подробнее здесь: https://stackoverflow.com/questions/791 ... set-caused
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»