数据库能查出字段的值而SSM查不出来的原因分析

数据库中checkResult字段有值,数据库通过SQL可以正常查出,但SSM项目页面该字段的值却显示不出来。然后我从以下3个方面去查找原因:



1.映射文件的列名与属性不一致  


2.查询的SQL语句缺少该字段


3.实体类中添加了别名的注解@SerializedName("")


三个方面都进行了查找,发现列名与属性写法没有问题,SQL语句也有该字段,实体类中该字段没有别名注解,

百思不得其解之际,我反复查看控制台打印出来的SQL终于找出症结所在,以下是其中部分SQL:



DISABLED_BY, DUNS, DISABLED_DATE CHECKRESULT, ECGDATA, ECGIMG, RUTIMG, ROW_ID


仔细查找发现DISABLED_DATE和CHECKRESULT这两个字段之间缺少个逗号“,”。加上后重新启动项目后,终于该字段的值能正常显示出来了。


原来,我的映射文件是采用mybatis插件反向生成的,在生成过程中,由于CHECKRESULT, ECGDATA, ECGIMG, RUTIMG这几个字段所占空间比较大,


mybatis插件自动将这几个字段单独生成一个实体类,在映射文件这边也进行了拆分,分别是:
 <sql id="Base_Column_List" >
  ID,ARCHIVEID,.........DUNS,DISABLED_DATE,
  </sql>
  
  和
  
  <sql id="Blob_Column_List" >
    CHECKRESULT, ECGDATA, ECGIMG, RUTIMG
  </sql>
  
  查询接口的SQL是这样的:
  select 
    <include refid="Base_Column_List"/>
     <include refid="Blob_Column_List"/>
     from table
 所以最后生成去数据库查询SQL语句就变成了DISABLED_BY, DUNS, DISABLED_DATE CHECKRESULT, ECGDATA, ECGIMG, RUTIMG, ROW_ID,但mybatis并没有
 
 检查出该错误,查询时也未报异常,但就是查询不出本来有值的字段的值。
 经历过此事,以后凡涉及到SQL分两部分写的,上一个SQL最后一个字段后面要加上逗号。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值