V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
13192262269
V2EX  ›  程序员

Java 求解:使用 mybatis 的一个小小问题

  •  
  •   13192262269 · 2019-03-21 13:52:52 +08:00 · 1790 次点击
    这是一个创建于 2080 天前的主题,其中的信息可能已经有所发展或是发生改变。
    问题:
    mybatis 的 resultType 返回类型 为 hashmap ,

    当获取到的 value 是 null 时,没有返回 key

    想要效果:

    当获取到的 value 是 null 时,依然返回 key

    eg:
    问题:
    "data":{
    }

    效果:
    "data":{
    "key":"test",
    value:""
    }

    怎么处理?请问一下
    第 1 条附言  ·  2019-03-21 14:48:44 +08:00
    已经结贴了,我写了一个帖子总结一下,你们可以看一下:https://mp.csdn.net/postedit/88714568
    第 2 条附言  ·  2019-03-21 14:49:56 +08:00
    11 条回复    2019-03-21 14:50:38 +08:00
    lyusantu
        1
    lyusantu  
       2019-03-21 14:00:21 +08:00
    用 hashmap 作为返回值的时候,牵扯到一系列的封装,具体实现可以查阅资料参考一下
    重点是在这个封装的过程中,如果字段对应的值是空的,这个字段就会被忽略掉
    13192262269
        2
    13192262269  
    OP
       2019-03-21 14:01:23 +08:00
    @lyusantu #1 对是的,当字段对应的值是空的,这个字段就会被忽略掉,如何做到不被忽略
    JinyAa
        3
    JinyAa  
       2019-03-21 14:03:20 +08:00
    ifnull(xxxx,'')
    CoderGeek
        4
    CoderGeek  
       2019-03-21 14:03:23 +08:00
    null 的话会被忽略 = =
    boris1993
        5
    boris1993  
       2019-03-21 14:03:54 +08:00 via Android
    SQL 里就把 null 替换成""不知道是否可行
    roothub
        6
    roothub  
       2019-03-21 14:11:37 +08:00   ❤️ 2
    可以在代码里或者 xml 里配置 mybatis 的全局属性,加上以下设置
    <!--当 mybatis 没有用实体返回而是用 Map 时,字段为 null 也映射到结果集中-->
    <setting name="callSettersOnNulls" value="true"/>
    13192262269
        7
    13192262269  
    OP
       2019-03-21 14:21:44 +08:00
    @lyusantu #1 已解决,用 6 楼的方法
    @JinyAa #3 最好不要这样子,我试过,用这方法,返回的 value 全部被转换成 String(int,data 类型会丢失)
    @CoderGeek #4 是的,mybatis 的 3.2 以上版本都会忽略
    @boris1993 #5 最好不要这样子,我试过,用这方法,返回的 value 全部被转换成 String(int,data 类型会丢失)
    @roothub #6 已解决谢谢,不过,不同的工程会有一点不同的去设置 callSettersOnNulls value=true
    13192262269
        8
    13192262269  
    OP
       2019-03-21 14:23:14 +08:00
    @roothub #6 没必要每行都配,代码量大的话,不好,可以设为全局属性
    13192262269
        9
    13192262269  
    OP
       2019-03-21 14:23:31 +08:00
    已结贴!!!
    boris1993
        10
    boris1993  
       2019-03-21 14:26:32 +08:00 via Android
    @13192262269 #7 学习一个
    13192262269
        11
    13192262269  
    OP
       2019-03-21 14:50:38 +08:00   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:35 · PVG 21:35 · LAX 05:35 · JFK 08:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.