2009-10-14 56 views
0

我能夠使用Apache Derby數據庫從NetBeans創建一個簡單的JPA Java應用程序。但是,當我試圖做同樣的SQL Server 2008中,我不斷收到以下錯誤:JPA對使用NetBeans的SQL Server 2008的支持6.7.1

重度:應用程序類sample.DBTestApp無法啓動 javax.persistence.PersistenceException:否EntityManager的命名RS6910SQLEXPRESS持久性提供商:3027 ; databaseName = TestPU:以下提供程序: oracle.toplink.essentials.PersistenceProvider oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider 返回null爲createEntityManagerFactory。

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83) 
    at sample.DBTestAppView.initComponents(DBTestAppView.java:285) 
    at sample.DBTestAppiew.<init>(DBTestAppiew.java:36) 
    at sample.DBTestApp.startup(DBTestApp.java:19) 

感謝您的幫助調查此事。

回答

2

該問題似乎與爲實例名稱爲SQL Server數據庫生成的PersistenceUnit名稱。生成的名稱是錯誤的,因爲它有反斜槓,並且在將其修改爲一個簡單的單詞(如「TestPU」)而不是生成的「RS6910 \ SQLEXPRESS:3027; databaseName = TestPU」之後,所有內容都開始工作。

我認爲這可能是一個NetBeans代碼生成SQL Server數據庫與實例名稱的錯誤。

但是,正如我們現在知道一種解決方法,我們可以嘗試遵循這一點。只需在所有文件中重命名生成的持久化單元名稱,即可開始工作。