首页 > 代码库 > Caused by: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "mil_id")

Caused by: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "mil_id")

今天在使用mybatis处理数据库的时候,突然抛出了上述异常,让我感到很惊讶,因为在处理save的时候,在Mybatis的配置文件中,我根本就没有使用到ognl表达式,系统怎么会抛出上述异常。而且之前也是这么使用的,也没见抛出上述异常。然后查看操作数据库的Mybatis的配置文件,倒是找到了几个错误,但是都不是引起这个异常的原因。然后,再仔细查看这个配置文件,突然之间,发现了,在该配置文件:

<!-- save --><insert id="save">    insert into qa_sampling(s_id ,                             s_mil_id ,                             s_samplingPackage ,                             s_samplingWeight ,                             s_samplingPerson_id ,                             s_samplingCardFill ,                             s_samplingDate ,                             s_createTime)                     values(#{s_id} ,                             ${s_mil.mil_id} ,                             #{s_samplingPackage} ,                             #{s_samplingWeight} ,                             #{s_samplingPerson.u_id} ,                             #{s_samplingCardFill} ,                             #{s_samplingDate} ,                             #{s_createTime})</insert>

${s_mil.mil_id} , 这一处,居然是使用$,难怪系统将其作为表达式进行解析,将其修改成”#”之后,一切OK,上述异常成功解决。现,贴出正确的写法:

<!-- save --><insert id="save">    insert into qa_sampling(s_id ,                             s_mil_id ,                             s_samplingPackage ,                             s_samplingWeight ,                             s_samplingPerson_id ,                             s_samplingCardFill ,                             s_samplingDate ,                             s_createTime)                     values(#{s_id} ,                             #{s_mil.mil_id} ,                             #{s_samplingPackage} ,                             #{s_samplingWeight} ,                             #{s_samplingPerson.u_id} ,                             #{s_samplingCardFill} ,                             #{s_samplingDate} ,                             #{s_createTime})</insert>

 

Caused by: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "mil_id")