Hibernate with MS SQL Server 2012 问题 table 锁和并行查询

Hibernate with MS SQL Server 2012 issue with table locks and parallel query

我有一个 java 线程在事务中更新少数 tables,还有另一个线程使用只读事务读取 tables。读取 tables 的线程正在等待而不是重新调整结果,并且 returns 仅在另一个线程完成更新后。

如果数据库是 mysql,情况就不同了,更新和查询是并行发生的,没有等待。我在 MS SQL 方面遗漏了什么吗?需要做什么才能使其并行。发生这种情况是因为 table 锁在 MS Sql 服务器中。

MS Sql服务器休眠设置:

db.driverClassName = com.microsoft.sqlserver.jdbc.SQLServerDataSource

db.dialect = org.hibernate.dialect.SQLServer2008方言

Hibernate 版本:v4.3.6.Final

连接池:HikariCP-java6 - v2.2.5

T-SQL你可以使用UNLOCK命令,在this link你可以看到它的完整描述。您也可以在从 table 中选择时使用 WITH (NOLOCK),例如:

SELECT *
FROM sample_table WITH (NOLOCK)
WHERE --conditions

但是在 HibernateMS SQL Server 中我真的不知道如何实现 NOLOCK如果您找到解决方案,请告诉我们我会回答这个问题。