我们正在从Spring Boot 2.7->3.0.2,以及对Hibernate 6的相关更改。
运行应用程序时出现以下错误:
java.lang.NullPointerException:
Cannot invoke "org.hibernate.engine.spi.EntityKey.getIdentifier()" because "this.entityKey" is null
我们的
持久性.xml
提供程序是
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
有一个Hibernate票证显然是最近为此错误输入的:
https://hibernate.atlassian.net/browse/HHH-16075?filter=-4
根据这张票,这个错误在Hibernate中得到了修复
6.1.7
.我们在POM中添加了以下额外的Hibernate Core依赖项并进行了重建,但是
错误仍在发生
。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.1.7.Final</version>
<type>pom</type>
</dependency>
还有其他可能的解决方案吗?
更新
我们注意到这种情况发生在复合密钥上。我们最初怀疑一些复合密钥部分为NULL,这在以前可能是允许的,但后来发现所有部分都不是NULL。但是,复合密钥的某些内容导致了此错误。