问题描述
ibatis 2中,能配置文件中动态指定字段么?在ibatis 2中,比如有ownerid ownertype两个字段,当ownertype=1时,onwerid 要到A表的a字段进行关联,当onwertype=0时,ownerid要到B表的B字段进行关联,这个在sqlmapper的xml文件中,能配置到么? 问题补充:niuzai 写道
解决方案
<isEqual prepend="AND" property="ownerid" compareProperty="compareField" compareValue="0"> ownerid in (select $currentField$ from $currentTable$) </isEqual> 查询时,传入map.put("currentField", "a");map.put("currentTable", "A");map.put("compareField","ownertype");
解决方案二:
亲,我有说ownertype一定就是POJO的属性吗?这里它就相当于一个参数,你只要在传值的时候传入这个参数就OK!我们通常对一个字段多做判断的情况不就是那样做的吗?<isNotEmpty prepend="AND" property="id"> ID = #id# </isNotEmpty> <isNotEmpty prepend="AND" property="ids"> ID in ($ids$) </isNotEmpty>这里的ids就是一个参数而已,你试一下咯~
解决方案三:
亲,看看这个是不是你想要的! <isEqual prepend="AND" property="ownerid" compareProperty="ownertype" compareValue="0"> ownerid in (select a from A) </isEqual>