MyBatis-Plus中getOne方法或selectOne方法是否会抛异常

结论:

如果你调用的是无参的 getOne 方法(即没有显式传递 throwEx 参数),默认情况下:

  • MyBatis-Plus 2.x 版本throwEx 默认为 false,即当查询到多条记录时不会抛出异常,而是返回第一条记录。
  • MyBatis-Plus 3.x 版本throwEx 默认为 true,即当查询到多条记录时会抛出异常。

源码:

getOne 方法是否会抛异常,取决于你使用的 MyBatis-Plus 版本以及是否显式设置了 throwEx 参数。

也可以显示设置 throwEx = true

User user = userMapper.getOne(new QueryWrapper<User>().eq("id", 1), true);



结语:

根据业务需求选择合适的 throwEx 值,并确保查询条件足够严格,以避免意外情况的发生。

posted @ 2024-11-13 18:22  Journey&Flower  阅读(533)  评论(0)    收藏  举报