解决:did not exist: javax.persistence.Table.indexes()[Ljavax/persistence/Index
1、问题
刚刚在用springboot配置多数据源时,报错如下:
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
- org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:1236)
The following method did not exist: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
The method's class, javax.persistence.Table, is available from the following locations:
- jar:file:/C:/practice/springboot/lib/javax.persistence.jar!/javax/persistence/Table.class
- jar:file:/C:/Users/jiayou/.m2/repository/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar!/javax/persistence/Table.class
It was loaded from the following location:
- file:/C:/practice/springboot/lib/javax.persistence.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of javax.persistence.Table
2、分析
看了这个链接 NoSuchMethodError in javax.persistence.Table.indexes()[Ljavax/persistence/Index,找到了原因:
当前项目和仓库同时提供了Table.class的类路径。
3、解决
在当前项目的库中删除下面的jar包: