У меня есть фрагмент кода, который я не трогал:
Код: Выделить всё
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)
Я вижу, что они одинаковы, поэтому единственная разница, которую я вижу, - это версия критериев. Один 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
Мобильная версия