JPA提示no persistence found问题求助,已排查基础配置
排查"no persistence found"错误
已确认问题非重复,检查过文件夹名称及persistence配置文件,也更新了Maven的pom.xml配置(如下),但仍出现"no persistence found"错误。
Maven pom.xml依赖配置
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- JPA --> <dependency> <groupId>javax.persistence</groupId> <artifactId>javax.persistence-api</artifactId> <version>2.2</version> </dependency> <!-- Hibernate (JPA Implementation) --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.5.6.Final</version> <scope>compile</scope> </dependency> <!-- Derby --> <dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId> <version>10.15.2.0</version> </dependency> </dependencies>
persistence-unit配置片段
<persistence-unit name="Memories" transaction-type="RESOURCE_LOCAL">
对应DataMapper代码片段
import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.fcul.memoriesdb.domain.Photograph; import java.util.List; public class PhotographDataMapper { private EntityManagerFactory entityManagerFactory; public PhotographDataMapper() { // Create the EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("Memories");
排查方向
- 检查
persistence.xml存放路径:必须放在src/main/resources/META-INF目录下,确保Maven打包时能将其纳入classpath的META-INF目录中。 - 补全persistence-unit完整配置:当前给出的配置片段不完整,需添加实体类声明和数据库连接参数,示例如下:
<persistence-unit name="Memories" transaction-type="RESOURCE_LOCAL"> <class>com.fcul.memoriesdb.domain.Photograph</class> <properties> <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/> <property name="javax.persistence.jdbc.url" value="jdbc:derby:memoriesDB;create=true"/> <property name="javax.persistence.jdbc.user" value=""/> <property name="javax.persistence.jdbc.password" value=""/> <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/> <property name="hibernate.hbm2ddl.auto" value="update"/> </properties> </persistence-unit> - 验证打包后的文件结构:执行
mvn clean package后,检查target/classes/META-INF下是否存在persistence.xml,且内容与配置一致。 - 确认实体类注解:检查
Photograph类是否添加了@Entity注解,且包路径与persistence.xml中<class>声明的完全匹配。
内容的提问来源于stack exchange,提问作者jhonny
相关产品推荐
相关产品推荐

