mybatisplus使用association,collection实现一对一,一对多

当使用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使用的时候一点细节的记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值