SQL 服务器 Windows 身份验证和休眠

SQL Server Windows Authentication and Hibernate

尝试使用 Hibernate 4.3 连接到具有 Windows 身份验证的 SQL 服务器,我得到:

"No Persistence provider for EntityManager named instanceTest"

我已经加载了 sqljdbc_auth.dll 库并且我正在使用这个 url:

jdbc:sqlserver://localhost:1433;databaseName=WIN_AUTHDB;integratedSecurity=true

我用来创建实体管理器工厂的参数是:

properties.put("background-validation", "true");
properties.put("hibernate.c3p0.idle_test_period", "3600");
properties.put("hibernate.hbm2ddl.auto", "update");
properties.put("hibernate.max_fetch_depth", "3");
properties.put("hibernate.connection.driver_class", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
properties.put("hibernate.connection.url","jdbc:sqlserver://localhost:1433;databaseName=WIN_AUTHDB;integratedSecurity=true");

我错过了什么?也许是dll没有加载?此行抛出错误:

Persistence.createEntityManagerFactory("instanceTest", initProperties(properties));

数据库已正确配置,我已通过 Windows 身份验证连接到 SQL 服务器管理。此外,在之前的测试中,我实现了使用没有休眠的驱动程序创建数据库。

提前致谢。

除此之外,添加以下内容 属性

properties.put("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");

已解决!

比我想象的简单多了。我在编译maven项目的时候,无意中删除了persistence.xml文件。这就是原因,因为它从未在 war.

找到持久性提供程序