最近在Spring+Jpa的web项目中报如下错误:
Caused by: java.lang.IllegalStateException: No persistence units parsed from {classpath*:META-INF/persistence.xml}
at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainDefaultPersistenceUnitInfo(DefaultPersistenceUnitManager.java:680)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.determinePersistenceUnitInfo(LocalContainerEntityManagerFactoryBean.java:375)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:329)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
... 39 more
可能的原因一:
在web工程文件夹下,本来有一个 META-INF 文件夹,但这个文件夹是和 WEB-INF 目录同级,JPA的persistence.xml配置文件不能放到这个META-INF文件夹下,而是要放到 WEB-INF/classes/META-INF文件夹下。
可能的原因二:
在application.xml文件中集成Jpa时缺少如下配置:<property name="packagesToScan" value="cn.itsource.entity" />
packagesToScan属性表示JPA的扫描包,扫描实体类,生成实体类与数据库表之间的ORM映射关系,必须添加