狠狠做网站 百度一下,网站ui界面设计,上饶百度网站建设,免费jsp源码分享网站应该是框架的问题#xff0c;去官方仓库提了个issues#xff0c;等回复
https://github.com/baomidou/mybatis-plus/issues/5923
回复来了#xff1a; 背景 发现 record是两条#xff0c;但是total显示3
使用resultMap一对多时#xff0c;三条数据会变成两条#xff0…应该是框架的问题去官方仓库提了个issues等回复
https://github.com/baomidou/mybatis-plus/issues/5923
回复来了 背景 发现 record是两条但是total显示3
使用resultMap一对多时三条数据会变成两条但是total确是3条
下面是一对多的resultMap代码 想要达成的效果
有意思的是把sql拿出来执行的确是三条只是在mapper中进行了一对多的关联关联后变成两条
但是这里的total有问题需要优化
原理分析
mybatis-plus在执行sql前会执行查询total的sql 这里的查询是根据原sql拼接而来也就是未进行一对多操作的sql
怀疑是框架本身的bug在框架项目的issues中查找了一番并没有找到相关答案
框架地址https://github.com/baomidou/mybatis-plus 于是选择更换一对多的方式改为子查询
改动前
collection propertypotentialCustomerMediaVOList ofTypecom.djbx.cxb.manager.vo.business.PotentialCustomerMediaVOresult columncreate_time propertycreateTime/result columnurl propertyurl/
/collection
改动后
collection propertypotentialCustomerMediaVOList ofTypecom.djbx.cxb.manager.vo.business.PotentialCustomerMediaVO selectgetCustomerMediaVOListcolumnidid columnid propertyid/result columncreate_time propertycreateTime/result columnurl propertyurl/
/collection 子查询sql
select idgetCustomerMediaVOList resultTypecom.djbx.cxb.manager.vo.business.PotentialCustomerMediaVOselect pcm.id, pcm.create_time, pcm.url from potential_customer_media pcm where pcm.pid #{id} and pcm.media_node 3order by pcm.id desc
/select
完美解决又捡起来一种遗忘的mybatis一对多的方式
引申思考
如何传入前端入参到子查询中
可以在父查询中新增一个查询字段比如select #{param.address} as address
然后在column中传入
collection propertypotentialCustomerMediaVOList ofTypecom.djbx.cxb.manager.vo.business.PotentialCustomerMediaVO selectgetCustomerMediaVOListcolumnidid column{idid,addressaddress} propertyid/result columncreate_time propertycreateTime/result columnurl propertyurl/
/collection
未测试应该可用 参考链接
Mybatis一对多分页问题及映射问题_一对多映射 分页-CSDN博客