Ibatis:There is no READABLE property named 'member_id' in class 'java.lang.String'

来源:互联网 发布:淘宝链接转换器在线 编辑:程序博客网 时间:2024/05/22 10:55
参考:http://blog.csdn.net/will_awoke/article/details/8778531

原有的错误配置:
  1. <select id="selectMembers" resultClass="TMember" parameterClass="java.lang.String">  
  2.         select * from t_member  m
  3.         where  
  4.             1=1  
  5.         <dynamic>  
  6.             <isNotEmpty prepend="and" property="member_id">  
  7.                   m.member_id = #member_id#
  8.             </isNotEmpty>  
  9.         </dynamic>  
  10. </select> 

修正结果1(判断传参是否非空):
  1. <select id="selectMembers" resultClass="TMember" parameterClass="java.lang.String">  
  2.         select * from t_member  m
  3.         where  
  4.             1=1  
  5.         <dynamic>  
  6.             <isNotEmpty prepend="and" property="value"> <!-- 此处property设置为value,ibatis默认 -->  
  7.                   m.member_id = #value:VARCHAR#
  8.             </isNotEmpty>  
  9.         </dynamic>  
  10. </select> 


修正结果2(直接使用):
  1. <select id="selectMembers" resultClass="TMember" parameterClass="java.lang.String">  
  2.         select * from t_member  m
  3.         where 1=1  AND m.member_id = #member_id:VARCHAR#
  4. </select> 

说明:
1.parameterClass设置成了java.lang.String, 而property代表parameterClass这个类中的某个属性
2.处不可以添加property来指定传参名字,因为String类里边没有我们指定名称的属性; 或者设置property="value",Ibatis默认许可
3.去掉property可直接取值,取值方式是与调用方法中的参数名称一致
0 0
原创粉丝点击