Sql server 2008 使用NetBeans 6.7.1对SQL Server 2008的JPA支持
我能够使用ApacheDerby数据库从NetBeans创建一个简单的JPA Java应用程序。但是,当我尝试对SQL Server 2008执行同样的操作时,我不断遇到以下错误: 严重:未能启动应用程序类sample.DBTestApp javax.persistence.PersistenceException:没有名为RS6910SQLEXPRESS:3027的EntityManager的持久性提供程序;databaseName=TestPU:以下提供程序: oracle.toplink.essentials.PersistenceProvider oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider 向createEntityManagerFactory返回nullSql server 2008 使用NetBeans 6.7.1对SQL Server 2008的JPA支持,sql-server-2008,jpa,Sql Server 2008,Jpa,我能够使用ApacheDerby数据库从NetBeans创建一个简单的JPA Java应用程序。但是,当我尝试对SQL Server 2008执行同样的操作时,我不断遇到以下错误: 严重:未能启动应用程序类sample.DBTestApp javax.persistence.PersistenceException:没有名为RS6910SQLEXPRESS:3027的EntityManager的持久性提供程序;databaseName=TestPU:以下提供程序: oracle.toplink.
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)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:154)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:83)
位于sample.DBTestAppView.initComponents(DBTestAppView.java:285)
位于sample.DBTestAppiew(DBTestAppiew.java:36)
在sample.DBTestApp.startup(DBTestApp.java:19)上
感谢您的帮助。问题似乎在于为具有实例名称的SQL Server数据库生成的PersistenceUnit名称。生成的名称是错误的,因为它有反斜杠,在将其修改为一个简单的单词(如“TestPU”)而不是生成的“RS6910\SQLEXPRESS:3027;databaseName=TestPU”后,一切都开始工作 我认为这可能是为具有实例名称的SQL Server数据库生成NetBeans代码的一个错误 但我们现在知道了一个解决方法,我们可以尝试遵循这个方法。只需在所有文件中重命名生成的持久化单元名称,就可以开始工作了