sql执行,可以查询出一条数据,但是通过mybatis如下方式,返回的确实null,为什么呀?

发布于 2022-09-13 01:02:32 字数 1229 浏览 19 评论 0

 <select id="selectManualStat" parameterType="java.lang.String" resultType="com.sunyard.monitor.domain.General"
            resultMap="callHour">
        select sum(n_abandoned) n_abandoned,
        sum(n_answered) n_answered
        from GEN_ETL.R_GRQU_CR_1_HOUR@TO_CCGENESYS t1
        left join GEN_ETL.O_GRQU_CR_1_HOUR@TO_CCGENESYS t2
        on t1.object_id = t2.object_id
        where t2.object_name in
        <choose>
            <when test="opt == 0">
                ('GRQU_ALL')
            </when>
            <otherwise>
                ('ZH_MM','XYK_MM')
            </otherwise>
        </choose>
        and substr(time_key, 1, 8) = #{qdate}
        group by substr(time_key, 1, 8)
    </select>
<resultMap id="callHour" type="com.sunyard.monitor.domain.General">
        <result column="n_abandoned" property="n_abandoned"/>
        <result column="n_answered" property="n_answered"/>
    </resultMap>
@Data
public class General {
    private  String callhour;
    private  int n_abandoned;
    private  int n_answered;

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柳若烟 2022-09-20 01:02:32

mybatis好久不用了,但是粗略一看,貌似你这条件那里写的应该有问题吧,object_name = 0的时候是一个值,但是else那里,你应该是想用in的吧,
你可以把object_name = 放到条件里面去

    where 
    <choose>
        <when test="opt == 0">
            t2.object_name ='GRQU_ALL'
        </when>
        <otherwise>
            t2.object_name in('ZH_MM','XYK_MM')
        </otherwise>
    </choose>
    

具体你这个问题只能是去调试sql了,代码里面selectManualStat方法执行前,先打印gdate和opt参数具体值,然后替换 mybatis里面的数据项,放到数据库再去执行看看

ゃ懵逼小萝莉 2022-09-20 01:02:32

打印mybatis执行的SQL对比即可

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文