jpa group_concat转换字符串问题

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值