JPA 存储库:将实体保存在大表中的问题 - 超时错误 [重复]

Posted

技术标签:

【中文标题】JPA 存储库:将实体保存在大表中的问题 - 超时错误 [重复]【英文标题】:JPA repository : issue with saving an entity in a big table - timeout error [duplicate] 【发布时间】:2015-05-03 22:14:58 【问题描述】:

我正在使用 jpa 存储库。 我想在包含 100000 条记录的 mysql 表中保存一个实体。

当我这样做时

FraisProvision fraisProv = new FraisProvision();
...
fraisProvisionRepository.save(fraisProv);

我收到此错误`

原因:java.sql.SQLException: Lock wait timeout exceeded;尝试 重启交易

当 mysql 表不是那么大时,它运行良好。 如果我通过 MysqlWorkbench 在该表中插入一条记录,该记录会立即插入。 我不明白为什么使用 jpa 存储库插入实体需要这么长时间。

【问题讨论】:

【参考方案1】:

尝试将 ?autoReconnect=true 添加到您的 URI。例如: mysql://db_user:db_user@localhost/mydb?autoReconnect=true 它对我有用。

【讨论】:

以上是关于JPA 存储库:将实体保存在大表中的问题 - 超时错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用spring JPA存储库保存@lob数据

在 JPA 中保存具有一对一关系的实体

在大表中查询“对”

MySQL 性能:在大表中排序很慢,即使过滤的子集很小

Excel函数在大表中查找重复行

Spring Data JPA 中的多个基础存储库