使用 EclipseLink 编织因 NPE 而失败

Weaving with EclipseLink fails with NPE

执行编织(静态或动态)导致以下错误:

Caused by: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.7.1.v20171221-bd47e8f): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [MyUnit] failed.
Internal Exception: java.lang.NullPointerException
        at org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:231)
        ... 20 more
Caused by: java.lang.NullPointerException
        at org.eclipse.persistence.sessions.Project.hasSQLResultSetMapping(Project.java:1040)
        at org.eclipse.persistence.internal.jpa.metadata.queries.NamedNativeQueryMetadata.hasResultSetMapping(NamedNativeQueryMetadata.java:141)
        at org.eclipse.persistence.internal.jpa.metadata.queries.NamedNativeQueryMetadata.process(NamedNativeQueryMetadata.java:172)
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processQueries(MetadataProject.java:1713)
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.addNamedQueries(MetadataProcessor.java:153)
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:2024)

我在 EclipseLink 2.6.5 中没有遇到这个错误,如果我关闭 Weaving 一切正常。 有没有办法解决它?是什么触发了错误?

NPE 是一个错误,因为它不执行空检查并抛出更具体的错误:只有在您指定了命名本机 (SQL) 查询时才会发生此错误引用 SqlResultSetMapping 的实体,但您尚未定义任何结果集映射。有关文档和示例,请参阅 https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Native#SQL_Result_Set_Mapping