【问题标题】:Hibernate and MSSQL 2016 issueHibernate 和 MSSQL 2016 问题
【发布时间】:2016-09-26 12:06:15
【问题描述】:

我遇到了一个 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 Driver 6.0”(sqljdbc4.jar) - 我得到了一堆错误:

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

它发生在不同的实体上,并且可能发生在 get 或 update 操作上。

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

谢谢!

【问题讨论】:

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


【解决方案1】:

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

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

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

您还可以在MSDN 上找到更多官方文档。

适用于 SQL Server 的 Microsoft JDBC Driver 6.0 和 4.2: 为了支持向后兼容和可能的升级方案,JDBC Drivers 6.0 和 4.2 在每个安装包中包含四个 JAR 类库:sqljdbc.jar、sqljdbc4.jar、sqljdbc41.jar 和 sqljdbc42.jar。注意:提供 sqljdbc.jar、sqljdbc4.jar 仅用于向后兼容,不包含驱动程序版本 6.0、4.2 和 4.1 中包含的新功能。

【讨论】:

  • 我相信你是对的。我们最近为应用程序添加了 JVM 1.8 支持,因此下一步将是试用它。谢谢!
猜你喜欢
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
相关资源
最近更新 更多