经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » ASP.net » 查看文章
mybatis报错:查询一对多或多对多时只返回一条数据的问题
来源:cnblogs  作者:ysp  时间:2018/9/25 20:42:36  对本文有异议

问题:

使用映射文件实现查询一对多或多对多时只返回一条数据问题

解决方法:

导致这种情况出现的问题是因为两个表中的主键是一样所以出现了数据覆盖问题。

解决方式一:修改数据库表中的主键(这种方法比较麻烦)。

解决方式二:在查询语句中修改一个表的主键使其不一致即可,例子:

表User主键为id,表Book主键为id,映射结果集时设置表Book的主键id为b_id即可。

  1. <resultMap id="resultUserMap" type="books.com.boot.model.User">
    <id property="id" column="id"/>
    <result property="userName" column="user_name"/>
    <result property="userPassword" column="user_password"/>
    <result property="createUser" column="createuser"/>
    <result property="createTime" column="createtime"/>
    <result property="remark" column="remark"/>
    <collection property="books" column="author" ofType="Book" >
    <id property="id" column="b_id"/>
    <result property="title" column="title"/>
    <result property="author" column="author"/>
    <result property="isbn" column="isbn"/>
    <result property="isbnTime" column="isbn_time"/>
    <result property="publisher" column="publisher"/>
    <result property="decription" column="description"/>
    <result property="createUser" column="createuser"/>
    <result property="createTime" column="createtime"/>
    </collection>
    </resultMap>
    备注:
    属性property对应model类的属性名,column对应数据库表中的列名,其中id元素中的column可以修改为任意别名,result元素中的column列名必须与表列名一致。
    目前id元素和result元素的区别就在这方面,其他有待补充。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号