我正在尝试将jdbcType设置为传递给Ibatis查询的参数。我的后端表具有定义为varchar的字段,而mybatis框架似乎正在转换我传递的String参数
在我的mapper.java到nvarchar。结果,查询优化器花费时间来验证执行计划,进行隐式类型转换,因此会发生一些意外的延迟。关于解决该问题有什么建议吗?
我已经尝试过的样本:
从myTable t中选择*,其中t.periodType =#{periodType,javaType =“ String”,jdbcType =“ varchar”}
问题是,我们的查询很大,它包含很多子查询,在这些子查询中我们多次传递相同的参数。在每次出现时为同一变量定义jdbcType变得很麻烦。
不推荐使用parameterMap时,我尝试浏览parameterType。我将一个类传递给parameterType,但是找不到将jdbcType设置为parameterType中变量的方法。
任何帮助表示赞赏
最佳答案
parameterType对您不起作用-这是Java类型,很少需要。
我能想到的一种选择是使用
select * from myTable t where t.periodType=<include refid="PARAM_PERIOD_TYPE"/>
但是,这将使SQL无法读取。唯一的好处是,如果要进行更改,则只需在引用的PARAM_PERIOD_TYPE sql标记中。