Sql server 带表锁和并行查询的MS SQL Server 2012 Hibernate问题

Sql server 带表锁和并行查询的MS SQL Server 2012 Hibernate问题,sql-server,multithreading,hibernate,table-locking,Sql Server,Multithreading,Hibernate,Table Locking,我有一个java线程,用于更新事务中的几个表,还有一个线程使用只读事务读取表。读取表的线程正在等待,不会重新调整结果,只有在另一个线程完成更新后才会返回 如果数据库是mysql,那么情况就不同了,在mysql中,更新和查询是并行的,不需要等待。我是否遗漏了SQL方面的内容。需要做些什么才能使之平行。发生这种情况是因为MS Sql Server中的表锁 MS Sql server休眠设置: db.drivercassname=com.microsoft.sqlserver.jdbc.SQLServ

我有一个java线程,用于更新事务中的几个表,还有一个线程使用只读事务读取表。读取表的线程正在等待,不会重新调整结果,只有在另一个线程完成更新后才会返回

如果数据库是mysql,那么情况就不同了,在mysql中,更新和查询是并行的,不需要等待。我是否遗漏了SQL方面的内容。需要做些什么才能使之平行。发生这种情况是因为MS Sql Server中的表锁

MS Sql server休眠设置:

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

db.dialogue=org.hibernate.dialogue.sqlserver2008dialogue

休眠版本:v4.3.6.Final


连接池:HikariCP-java6-v2.2.5T-SQL中,您可以使用
UNLOCK
命令,在中可以看到该命令的完整描述。您也可以使用
和(NOLOCK)
从以下表格中进行选择:

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

但是在Hibernate中,使用MS SQL Server我真的不知道如何实现
NOLOCK
如果您找到解决方案,请告诉我们我将遵循这个问题。

谢谢您的回复。我还没有想出解决办法。我可能会通过敲打hibernate和使用jdbc模板来使用您的解决方案。欢迎您,我希望您能尽快解决这个问题。祝你好运