记录一下使用mybatis时 order by 赋值的问题。
原因 :我想实现表单根据每个字段进行排序,因为我的数据库字段名和实体类的字段名不一致,从前台获取了实体类的字段名传到mapper中 ,直接把这个写到sql语句肯定报此字段不在数据库字段中存在。
想到解决方法:
在mapper中做实体类映射,映射方法在我上一篇博客有。这样搞到最后发现是错误的。
因为映射的只能是做返回使用,在order by 后边是不允许使用的。
解决:
最后能as一个别名。使用别名就可以了。
另外:
还遇到一个问题:在前端传过来的字段在mapper取值用#{""}在order by后边是不行的。
因为#{""}取到的是一个字符串,会有双引号。order by会报错。
解决:用${""}取值就没问题了。