1.需求
改造后: 表A 通过关联表B记录关联信息
原有结构:是表A中存一个jsonList
需要: 如果在不改变前端处理方案下 需要手动将关联表信息进行拼接并转换为List String 的结构
方案:
1.通过 oneToMany ManyToOne进行保存
2.通过Group_Concat 加原生sql语句进行关联查询并组合 借助原有的Convert函数
3.在方案二基础上发现2的sql过于复杂 将字符串处理过程放在Convert 工具类中
4.尝试通过接口接收返回参数看是否有问题
2.过程
方案一:
另一个同事在做。。我头铁没那么弄
方案二:
@Query(value = "select * from (select t1.id ,t1.name ,t1.state ,t1.recommend_count , " +
"concat('[',ifNull (GROUP_CONCAT(concat(t2.sub_channel_id ) SEPARATOR ','),''),']') sub_channels " +
" from discover_rule t1 left join discover_channel t2 on t1.id=t2.discover_id " +
" group by t1.id, t1.name, t1.state,t1.recommend_count ) t1 ",nativeQuery = true)
List<DiscoverRule> findAllDiscoverRule();
方案三:
@Query(value = "select * from (select t1.id ,t1.name ,t1.state ,t1.recommend_count , " +
" GROUP_CONCAT( t2.sub_channel_id SEPARATOR ',') sub_channels " +
" from discover_rule t1 left join discover_channel t2 on t1.id=t2.discover_id " +
" group by t1.id, t1.name, t1.state,t1