当前使用版本(必填,否则不予处理)

3.3.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

getOne方法没有默认添加limit 1,查了很多地方 最后方案是 加.last("limit 1") 但是很多地方都会有这种查询每个地方都要单独写个 .last 感觉好麻烦. 官方能提供一个单独的方法区别于getOne嘛?

Comment From: miemieYaho

不能

Comment From: liuzhiguo630

我们也遇到同样的问题,一旦少了某个参数的检查,就容易把 null 放进去,结果整条 SQL 变成了没有任何条件的。上次直接查出来几千万条把机器打挂了。用的也是 getOne。

只能说如果手写 SQL 是不可能出现这种问题的。mybatis-plus 一点没有为真实用户服务的意思。

Comment From: ouyangCL

/* * 根据 Wrapper,查询一条记录
*

结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")

* * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} / default T getOne(Wrapper queryWrapper) { return getOne(queryWrapper, true); }

/**
 * 根据 Wrapper,查询一条记录
 *
 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
 * @param throwEx      有多个 result 是否抛出异常
 */
T getOne(Wrapper<T> queryWrapper, boolean throwEx);