JPA 2本机查询产生Nullpointer

时间:2019-01-28 16:23:03

标签: jpa-2.0

我正在尝试在我的一个项目中更新hibernate / jpa,由于一些本地查询,导致大量测试崩溃。

例如,一个本地查询看起来像这样:

Query query = this.entityManager.createNativeQuery(
                "select distinct c.* from company where ...."
                Company.class);

正是在这一点上,这会在org.hibernate.internal.AbstractSharedSessionContract#handleNativeQueryResult处产生NullpointerException:

} else if ( this.getFactory().getMetamodel().getEntities()
                .stream()
                .anyMatch( entityType -> entityType.getJavaType().isAssignableFrom( resultClass ) ) ) {
            query.addEntity( "alias1", resultClass.getName(), LockMode.READ );
        }

getEntities()似乎包括所有表的表示,不仅包括“真实”实体,还包括n-m表和历史记录表(反面)。 这些n到m或envers表没有代表JavaType(javaType为null),这使得entityType.getJavaType().isAssignableFrom产生NullPointerException。

如何解决此问题?

0 个答案:

没有答案