zoukankan      html  css  js  c++  java
  • Mybatis联合查询记录,左连接参数操作

    公司业务需求要做个列表的排序

    而实际排序的字段不再本库中,需要跨库去拿到字段,因为是微服务体系架构,不可能Left join跨库的表,所以决定调用一次跨服务的API拿到排序相关的对象,里面包含需要排序的列

    一块拿到sql中进行排序(因为order by比较方便。。。。)

    然后开始出现了bug,我把跨服务拿到的对象存成List集合,需要在sql中左连接才能使用里面的字段,但是直接这样写就会出现bug:

    ScheduleDictionary

    left join

    (select O.Id AS OrgId,O.`Code`,O.`Name` from #{param.orgModels} O)

    AS Org on ScheduleDictionary.OrganizationId=Org.OrgId

    bug的日志打印大约是这样:

    You have  an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'_binary'??srjava.util.ArrayListx??↔??a?♥Isizexpwt
    google了一下,只有一个问题是跟这个相关的,所以决定记录一下把,
    问了下领导,这样直接left join一个list集合是不行的,需要拆开:

    拆开的办法是使用union join 例如:select 1 as id,tt as name union join select 2 as id ,dd as name .....最后拼成一张表,
    而我传过去的是个List肯定要用foreach循环

    就这样就可以把它当作一张表去与主表连接了,

    同样也可以拿到 主键或者code去下面进行排序操作了,









  • 相关阅读:
    Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图
    用VC实现特定编辑框上对回车键响应
    22.职责链模式
    21.策略模式
    20.状态模式
    19.解释器模式
    18.备忘录模式
    17.中介者模式
    16.观察者模式
    15.迭代器模式
  • 原文地址:https://www.cnblogs.com/PrayzzZ/p/10642095.html
Copyright © 2011-2022 走看看