Java Hibernate通过一个查询锁定MySQL

Java Hibernate通过一个查询锁定MySQL,java,mysql,hibernate,transactions,locking,Java,Mysql,Hibernate,Transactions,Locking,我在Hibernate/MySQL中遇到了一个奇怪的问题,数据库被锁定并完全阻止所有查询显示流程列表说明如下: 在我看来,这样简单的查询可以锁定表,这真的很奇怪。特别是当事务与本机查询一样短时 我觉得特别奇怪的是,它会阻止所有表上的所有其他查询。如果有任何锁定的表,您会在进程列表中看到一个锁定的状态 因此,简单查询将运行,并且在事务结束时释放锁 在您的情况下,我怀疑您在处理完数据库连接后没有关闭它们。这就解释了为什么数据库看起来被阻塞了。数据库可能还可以,但连接已经分配,因此您无法获取新的连接。

我在Hibernate/MySQL中遇到了一个奇怪的问题,数据库被锁定并完全阻止所有查询<代码>显示流程列表说明如下:

在我看来,这样简单的查询可以锁定表,这真的很奇怪。特别是当事务与本机查询一样短时


我觉得特别奇怪的是,它会阻止所有表上的所有其他查询。

如果有任何锁定的表,您会在进程列表中看到一个
锁定的状态

因此,简单查询将运行,并且在事务结束时释放锁


在您的情况下,我怀疑您在处理完数据库连接后没有关闭它们。这就解释了为什么数据库看起来被阻塞了。数据库可能还可以,但连接已经分配,因此您无法获取新的连接。

您可以在此处发布Hibernate条件/HQL,包括打开/关闭数据库连接。它只是调用此本机查询的方法上的@Transactional annotation。没有别的。因为我在使用@Transactional annotation,我从来没有实际处理过连接,所以我不知道如何才能释放连接?有没有办法检查出了什么问题?您可以设置为监视连接池的行为。