今天写mybatis中遇到一个问题,参数是一个实体对象,我需要先判断这个对象是否为空,然后再判断里面的一些属性的值。
对于对象中的参数,通过OGNL表达式,我们可以直接用属性名访问,但是,对于这个对象本身如果写进动态sql进行判断中产生问题。
使用接口中的形参名字写进sql中 无法使用
解决方案:
1,mapper 接口文件使用 @param 注解(一个参数就不用使用注解,多个参数要么使用注解,要么使用数组的方式取值)
就是mapper接口里对象加上:@Param("别名"),然后xml里用#{别名.字段名}即可
这样就可以成功使用参数
拓展:
如果一个方法中有多个参数时,不要使用parameterType来限定参数类型,
例如参数一是一个对象,二三四是基本数据类型,就在接口中起一个别名。