最近在使用MyBatisPlus的时候遇到一个问题,就是controller中被spring封装bean,在默认使用MP的QueryWrapper构造查询的时候主键是空字符,也就是""
的时候,仍然会被作为查询条件,被拼接到sql中了。
例如
productService.list(new GenericQueryWrapper<Product>(product))
注意,这里只是主键,其他的字段可以通过全局的
mybatis-plus.global-config.db-config.select-strategy=not_empty
来处理,特殊情况可以用TableField注解实现。
Google了一大圈,发现并没有好的解决办法,倒是看到一个哥们的文章,链接找不到了,但是方法并不是很好,在每次查询面前,对主键做一个判断,但是这样就很不方便了。
public TableDataInfo list(Product product)
{
if (StringUtils.isEmpty(product.getProductId())) {[......]