java - Hibernate 通过一个查询锁定 MySQL

标签 java mysql hibernate transactions locking

我在使用 Hibernate/MySQL 时遇到一个奇怪的问题,数据库被锁定并完全阻止所有查询。 show processlist 表示如下:https://gist.github.com/knyttl/aec84d0abfc3f5fcd921

这么简单的查询竟然能锁定表,我觉得很奇怪。尤其是当交易与 native 查询一样短时。

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

最佳答案

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

这样简单的查询就会运行,并在其事务结束时释放锁。

在您的情况下,我怀疑您在完成数据库连接后没有关闭它们。这可以解释为什么数据库似乎被阻止了。数据库可能没问题,但连接已经分配,​​因此您无法获取新连接。

关于java - Hibernate 通过一个查询锁定 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28250973/

相关文章:

java - umlgraph 错误,找不到主类

java - 使用 Jersey 创建 Restful Web 服务客户端

Mysql条件: case when and LEFT join cannot make them work properly

java - jpa 2.0 对具有 2 个 ID 的类进行注释,指向两个不同的表

Hibernate/JPA import.sql utf8 字符损坏

java - JPA 实体连接组合键上的列,日期作为 PK 之一

java - fatal error - 序言中不允许内容

mysql - 澄清创建临时表的连接顺序

php - 创建一个自动创建新数据库条目的函数

java - hibernate 中 @EmbeddedId 内的级联