You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决JPA报错:No Persistence provider for EntityManager named concretepage

解决Hibernate中No Persistence provider for EntityManager named concretepage错误

我正在学习Hibernate并进行实操,遇到了No Persistence provider for EntityManager named concretepage错误,无法继续推进。已尝试以下两种常见解决方案但问题仍未解决:

  • 将persistence.xml保存至src/main/resources/META-INF目录
  • 更新provider为org.hibernate.jpa.HibernatePersistenceProvider

以下是我的相关配置、代码及项目信息:

POM配置

<!-- 粘贴你的POM配置代码 -->

persistence.xml内容

<!-- 粘贴你的persistence.xml代码 -->

Java核心代码

// 粘贴你的EntityManagerFactory初始化及相关业务代码

完整报错信息

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named concretepage
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
// 粘贴完整报错栈信息

## 项目结构

项目根目录
├── src
│ ├── main
│ │ ├── java
│ │ │ └── [你的包路径]
│ │ │ ├── entity
│ │ │ │ └── [实体类文件]
│ │ │ └── [主类/测试类文件]
│ │ └── resources
│ │ └── META-INF
│ │ └── persistence.xml
├── pom.xml

### 排查方向
1. **依赖版本兼容性检查**
   确认POM中`hibernate-core`、`hibernate-entitymanager`等Hibernate相关依赖版本统一,无冲突。Hibernate 5.x与6.x的API包结构有差异,若用6.x需确保依赖引入的是Jakarta EE版本(`jakarta.persistence.*`),而非旧版`javax.persistence.*`。
2. **persistence.xml配置校验**
   - 确保persistence-unit的`name`属性与代码中`Persistence.createEntityManagerFactory("concretepage")`的参数完全一致(大小写敏感)
   - 检查XML语法是否正确,比如标签闭合、实体类全路径拼写无误、provider属性值正确
3. **依赖完整性验证**
   执行`mvn dependency:tree`查看依赖树,确认Hibernate核心依赖未被排除,且JPA基础API依赖(如`hibernate-jpa-api`)已正确引入
4. **编译后文件位置确认**
   查看项目`target/classes/META-INF`目录,确认`persistence.xml`已被正确复制到该路径,避免Maven资源复制配置遗漏
5. **实体类注解检查**
   确认实体类上的`@Entity`、`@Table`等注解包导入正确,无拼写错误,实体类已被正确配置到persistence.xml的`<class>`标签中

内容的提问来源于stack exchange,提问作者Sujesh Surya
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:25:20