Hibernate与MS SQL Server 2012问题的表锁和并行查询

时间:2015-01-22 22:50:25

标签: sql-server multithreading hibernate table-locking

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

如果DB是mysql,并且更新和查询并行发生并且没有等待,则情况不同。我在MS SQL方面遗漏了什么。需要做些什么才能使其平行。这是因为MS Sql Server中的表锁而发生的。

MS Sql server休眠设置:

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

db.dialect = org.hibernate.dialect.SQLServer2008Dialect

Hibernate版本: v4.3.6.Final

连接池: HikariCP-java6 - v2.2.5

1 个答案:

答案 0 :(得分:1)

T-SQL 中,您可以使用UNLOCK命令,在this link中,您可以看到它的完整说明。您也可以在从表格中选择时使用WITH (NOLOCK)

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

但是在 Hibernate 中使用 MS SQL Server 我真的不知道如何找到解决方法{@ 1}}告诉我们我会按照这个问题。