select语句导致超过锁等待超时;尝试重新启动innodb事务

pvabu6sv  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(265)

我真想知道为什么这会导致“锁等待超时超过;尝试重新启动事务”。这是innodb,默认隔离级别是repeatable read。好吧,select语句不应该给出这个错误。此外,这里既不涉及事务,也不涉及“select for update”。另外,这两个表中没有涉及触发器。自动提交已关闭。
查询:

  1. SELECT cart.cart_id, profile_id,cart_data, cart.created_ts,
  2. cart.last_updated_ts, cart.last_updated_by, version, cart_item_id, cartItem.cart_id,
  3. cart_item_data, cartItem.created_ts, cartItem.last_updated_ts,
  4. cartItem.last_updated_by
  5. FROM est_cart cart
  6. LEFT OUTER JOIN est_cart_item cartItem
  7. ON cart.cart_id = cartItem.cart_id
  8. WHERE cart.profile_id=:profileId

下面是如何在java代码中检索它。

  1. public Cart loadCart(String profileId) {
  2. try (Context time = loadCartFromDBTimer.time()) {
  3. MapSqlParameterSource sqlParameterSource = new MapSqlParameterSource();
  4. sqlParameterSource.addValue(PROFILE_ID, new BigInteger(profileId));
  5. return jdbcTemplate.query(cartDAOConfig.getFindCartByProfileId(), sqlParameterSource, new CartResultSetExtractor());
  6. } finally {
  7. logger.debug(FINALLY_BLOCK_CONSTANT);
  8. }
  9. }

在事务中不调用loadcart。

提前谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题