我在实体类中要加一个数据库中没有的字段

private List<Dept> children;

以前因为都是自己写的sql语句,遇到这种比如要添加自定义的list,都是直接在mapper.xml里用 collection的

<collection  property="children" javaType="java.util.List"  resultMap="childrenResultMap" />

后面用了mybatis-plus,都是用crud来操作数据库,结果就是遇到这种数据库不存在的字段,就会报错 Unknown column ‘children’ in 'field list’

然后我按照网上说的,使用 @Transient 注解,导入的包也是正确的包,
import javax.persistence.*;

我这个项目是springboot项目,我使用这个注解后还是报错,然后我再添加get、set方法,试了分别在get、set方法上加这个注解,甚至属性、get、set三个都加了这个注解,都没用,去网上找原因,都是复制粘贴,说包错了,我直接疑惑。

最后我在一个说包错了的博客的评论区,找到了一条评论,说用 @TableField(exist = false) 试试,然后加了这个后果然可以了。

总结:
如果加 @Transient 注解无效的话,不妨试试 @TableField(exist = false) ,或者在属性前面加 transient

  @TableField(exist = false)
  private List<Dept> children;
  
  //或者
  private transient  List<Dept> children;

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐