当使用mybatisplus时,如果我们需要扩充字段,例如查询出部门编号是1,而我们需要展示的是部门名称,这时官方提供了一种方法及使用枚举。但是对于我们业务来讲,这是动态的,而枚举生成好了以后无法进行动态扩展。然后想到Mybatis是可以使用association和collection。
使用mybatis时,使用association和collection可以实现字段扩展,子表相关功能。当使用Mybatisplus时,突然出现ORA-00904 标识符无效的错误。这是为啥呢,原来我们使用mybatisplus是定义实体时,我们必须设置一个注释@TableName,而我们使用时,实体字段和表字段是一对一的关系,所以这就会导致我们设置了association,但是它依旧会去该表中查找,当然肯定找不到数据,就会报错,标识符无效。 所以呢,我们只需要进行设置@TableName的resultMap就可以了。
这时,我们查询的时候,就会把association定义的对象查询出来了。理论上来讲,到这应该就没问题了,可是呢,当我们操作增修改的时候,如果我们把这个association的对象也不小心给写入,新增或修改则又会出错标识符无效....,因为表里是没有该字段的,而此时我们只需要在实体里把这个对象给加上@TableField(exist = false) 就不会报错了。
同理collection和association一样。 至于association的用法,网上很多,直接使用即可。本文主要针对mybatisplus使用的时候一点细节的记录。