Spring Data Neo4j is not a valid entity class. Please check the entity mapping

本文记录了在SpringBoot2.1.1集成SpringDataNeo4j时遇到的一个节点保存错误的问题排查及解决过程。问题表现为在IDE环境下正常,但在Maven打包后启动时出现身份类验证错误。通过调试发现FastClasspathScanner类无法扫描到Neo4jEntity类,最终手动引入FastClasspathScanner的较新版本解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先抛结论

究竟是什么原因引发的,确实没排查出来。
解决方案,在POM文件中主动引入 fast-classpath-scanner 比较新的版本,问题解决。

问题

SpringBoot 2.1.1 集成 Spring Data Neo4j 保存一个节点的时候报错,提示 XXX is not a valid entity class. Please check the entity mapping。

诡异之处在于,在IDE环境中没有任何问题(IDEA、Eclipse均正常),只有maven打包之后会有这个问题。

网上查了很多,都说是 SessionFactor y配置的包扫描路径有问题,但反复确认过不是。

排查

此处省略2个白天和2个晚上的加班……

发现打包启动的时候有一堆警告,提示 Neo4j Entity 类中的 Property 找不到 Owning Class。

最终无奈在IDEA里对本地启动的Jar包进行调试,追踪到了一个 名为 FastClasspathScanner 的类,作用是用来扫描Classpath里的Jar包和类的,发现打包后Jar包启动时这个类没有办法扫到Neo4j的Entity类。

此处省略2个小时……

追踪了半天也没有发现引发问题的原因是什么,考虑了一下会不会是该类库本身的bug。

在POM文件中手动引入该类,并指定版本为2.21.(Spring Data Neo4j里引入的大版本是2, 2.21是2版本中的最后一个版本,再往后的版本貌似差异比较大,引入之后会提示找不到类)

 <!-- https://mvnrepository.com/artifact/io.github.lukehutch/fast-classpath-scanner -->
<dependency>
    <groupId>io.github.lukehutch</groupId>
    <artifactId>fast-classpath-scanner</artifactId>
    <version>2.21</version>
</dependency>

问题解决……

结论

究竟是什么原因引发的,确实没排查出来。

解决方案,在POM文件中主动引入 fast-classpath-scanner 比较新的版本,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值