【问题标题】:JPA Support for SQL Server 2008 using NetBeans 6.7.1使用 NetBeans 6.7.1 对 SQL Server 2008 的 JPA 支持
【发布时间】:2009-10-14 18:51:01
【问题描述】:

我能够使用 Apache Derby 数据库从 NetBeans 创建一个简单的 JPA Java 应用程序。但是当我尝试对 SQL Server 2008 执行相同操作时,我不断收到以下错误:

严重:应用程序类 sample.DBTestApp 无法启动 javax.persistence.PersistenceException:没有名为 RS6910SQLEXPRESS:3027;databaseName=TestPU 的 EntityManager 的持久性提供程序:以下提供程序: 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)

感谢您对此的帮助。

【问题讨论】:

    标签: sql-server-2008 jpa


    【解决方案1】:

    问题似乎在于为具有实例名称的 SQL Server 数据库生成的 PersistenceUnit 名称。生成的名称是错误的,因为它带有反斜杠,在将其修改为一个简单的单词(如“TestPU”)而不是生成的“RS6910\SQLEXPRESS:3027;databaseName=TestPU”之后,一切都开始工作了。

    我认为这可能是 NetBeans 为具有实例名称的 SQL Server 数据库生成代码的错误。

    但既然我们现在知道一种解决方法,我们可以尝试遵循此方法。只需在所有文件中重命名生成的持久性单元名称,一切就应该开始工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 2010-12-08
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多