mybatis中子查询时column传参问题
2022/1/7 6:06:00
本文主要是介绍mybatis中子查询时column传参问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
单参数传递:可以直接使用
column="col"
的形式将参数传递
多参数传递:column="{prop1=col1,prop2=col2}"
,其中prop1,prp2
为自查询中要用#{}插入的参数名称
问题发现
对于多参数传递过程中,如果传的是string
类型的变量,会报出There is no setter for property named 'byte' in 'class java.lang.String'
错误,但如果是int
类型或者是单参数的string
类型传递,则不会出现这样的错误
问题解决
发现是在子查询中使用parameterType="string"
限定了传入的参数类型,将这个可选项去掉,问题解决
原因猜测
对于单参数传递,内部实现直接采用\(=\)的直接赋值方法,因此单参数时即使限定了parameterType="string"
不会报错
对于多参数传递,如果使用了parameterType
,则会将传入的prop
视为该类型的成员变量名,调用其set方法进行赋值,如果没有使用,默认为unset
,则对传入参数类型未知,内部实现也直接采用\(=\)的直接赋值方法
这篇关于mybatis中子查询时column传参问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享