当前使用版本

mybatis-plus-boot-starter, 3.4.1

该问题是如何引起的?

当继承BaseMapper接口时,如果数据类的类名为User,在调用BaseMapper.selectList(null)时就会报错: column "id" does not exist 检查了很多遍,表名没错,id字段也是有的。 后来我换了一个表名,就好了。 原因是,postgresql中有user这么一个对象,其含义是数据库的用户表。 而BaseMapper生成的查询是: SELECT id,username,password,tags FROM user 请注意,没有任何的转义或者引号。 这样查询,其实先去查数据库自带的用户表,当然没有我定义的那些字段了。

解决办法也很简单,两个都可以: SELECT id,username,password,tags FROM “user” 或 SELECT id,username,password,tags FROM public.user

public是默认的名字空间。当然加了引号的user也是去默认的名字空间中去查询。 顺便说一句,生成的sql查询应该支持名字空间配置。

重现步骤(如果有就写完整)

报错信息

Comment From: miemieYaho

去看文档