java - Hibernate 和 MSSQL 2016 问题

标签 java sql-server hibernate jdbc sql-server-2016

我遇到了一个 Java 应用程序 (JVM 1.6) 的问题,该应用程序使用 Hibernate 3.6 通过 Microsoft JDBC Driver for SQL Server 访问 Microsoft SQL Server。

在使用 SQL JDBC 驱动程序 3.0 和 MSSQL 2008 - 2014 时一切正常。

但是当我尝试使用 MSSQL 2016 时,最新的“Microsoft JDBC 驱动程序 6.0”(sqljdbc4.jar) - 我遇到了一堆这样的错误:

org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)

它发生在不同的实体上,并且可能发生在获取或更新操作上。

我的问题:这是 Hibernate 的一个问题,它也需要更新到更新的版本吗? 在通过 Java/Hibernate 访问 MSSQL 2016 时,我找不到任何有关兼容性问题的信息。

谢谢!

最佳答案

如果可能,您可以尝试使用 JVM 1.7 和 sqljdbc41.jar 吗?如果您能够使用 JVM 1.8 和 sqljdbc42.jar,那就更好了。

Microsoft 最近在 GitHub 上开源了他们的驱动程序.您可以在他们的 github 项目上提出问题。

根据我对 SQL Server 2016 的理解,您需要 sqljdbc41.jar 或 sqljdbc42.jar

此外,您可以在 MSDN 上找到更多官方文档.

Microsoft JDBC Driver 6.0 and 4.2 for SQL Server: To support backward compatibility and possible upgrade scenarios, the JDBC Drivers 6.0 and 4.2 include four JAR class libraries in each installation package: sqljdbc.jar, sqljdbc4.jar, sqljdbc41.jar, and sqljdbc42.jar. Note: sqljdbc.jar, sqljdbc4.jar are provided only for backwards compatibility, and do not contain new features included with driver versions 6.0, 4.2, and 4.1.

关于java - Hibernate 和 MSSQL 2016 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39702378/

相关文章:

sql - 在 SQL Server CE 中替换 DELETE INNER JOIN

sql-server - SQL Server 序列线程安全吗?

java - hibernate 注释类中使用的 "catalog"是什么?

java - 比较 hibernate 映射日期?

java - 在 eclipse java-ee 中制作动态网页时没有链接 CSS 文件

java - 如何使用 Mockito 模拟 feign.Client.Default

sql - 如何在 OUTER APPLY 查询中将 varchar 转换为 XML

java - JPA @ManyToOne - 我不想级联删除

java - 类文件方法 toPath() 的 NoSuchMethodError

java - Spring war 文件 "java.sql.SQLException: No suitable driver found for jdbc:postgresql:"