1.多表查询时,当列id重名时,mybatis会默认使用查询出的第一个id列(另一个列被覆盖),为了区分同名的列,给列取一个别名。取完别名后找到对应的colume中也要做出修改。
查询时给列取别名(多表查询):
SELECT u.*,o.id as oid,CODE,total,user_id
FROM tb_order o,tb_user u
WHERE o.user_id = u.id
AND o.id = #{id}
映射的column也要对应查询时的别名:
<id property="id" column="oid" />
<result property="code" column="code" />
<result property="total" column="total" />
2.当对查询出来的数据有疑惑时,可以复制sql语句到navicat中查询,与真正的结果比较,因为mybatis的查询机制可能会不同,除非自己封装框架。以后遇到sql语句问题也一样。
3.还有的就是如果在配置文件中(xml,properties)eclipse给出了拼写警告可能会影响程序正常执行。可通过在eclipse下的Window–Preference输入spell,然后把第一个复选框“Enable spell checking“给去掉就可以了。
以上就是我在解决mybatis中字段重名的问题过程中的尝试和总结。