我在IntelliJ中有一個使用Hibernate的JavaFX Maven項目。當應用程序啓動時,我收到以下錯誤消息:沒有實體管理器的持久化提供者名爲xyz
沒有持久性提供EntityManager的名爲XYZ的
爲什麼?我的META-INF/persistence.xml位於myproject/src/main/resources(該目錄在項目設置中被檢查爲資源文件夾)。 我確定我已經通過Maven下載了所有的Hibernate JAR。
我的persistence.xml是正確的:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="xyz">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>entity.User</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLiteDialect"/>
<property name="javax.persistence.jdbc.url" value="jdbc:sqlite:java.sqlite"/>
<property name="javax.persistence.jdbc.driver_class" value="oracle.jdbc.driver"/>
<property name="hibernate.hbm2ddl.auto" value="none"/>
<property name="hibernate.show_sql" value="false"/>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
Java代碼:
factory = Persistence.createEntityManagerFactory("xyz");
在我的舊的非Maven項目上面的代碼工作的罰款。
您是否檢查了構建的工件?它是否包含persistence.xml並在正確的位置? – Thomas
只需在META-INF中重命名WEB-INF並且它應該可以工作 –
這是我寫錯問題時的錯誤。該文件夾被命名爲** META-INF **而不是WEB-INF。 –