2016-08-03 59 views
0

我在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項目上面的代碼工作的罰款。

+0

您是否檢查了構建的工件?它是否包含persistence.xml並在正確的位置? – Thomas

+0

只需在META-INF中重命名WEB-INF並且它應該可以工作 –

+0

這是我寫錯問題時的錯誤。該文件夾被命名爲** META-INF **而不是WEB-INF。 –

回答

1

您的persistence.xml必須位於META-INF文件夾中

+0

寫這個問題是我的錯。該文件夾被命名爲** META-INF **而不是WEB-INF。 –

相關問題