Я пытаюсь обновить hibernate / jpa в одном из моих проектов и у меня происходит сбой нескольких тестов из-за некоторых собственных запросов.
Например, один собственный запрос выглядит примерно так:
Query query = this.entityManager.createNativeQuery(
"select distinct c.* from company where ...."
Company.class);
, который создает исключение NullpointerException в org.hibernate.internal.AbstractSharedSessionContract # handleNativeQueryResult, именно в этот момент:
} else if ( this.getFactory().getMetamodel().getEntities()
.stream()
.anyMatch( entityType -> entityType.getJavaType().isAssignableFrom( resultClass ) ) ) {
query.addEntity( "alias1", resultClass.getName(), LockMode.READ );
}
getEntities()
, кажется, включает в себя представления всех таблиц, а не только "реальных"'сущности, но также n-to-m таблицы и таблицы истории (envers).Эти таблицы n-to-m или envers не имеют представления JavaType (javaType имеет значение null), что заставляет entityType.getJavaType().isAssignableFrom
создавать исключение NullPointerException.
Как я могу исправить эту проблему?