日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis多对多的问题汇总

發布時間:2024/1/23 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis多对多的问题汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.只顯示地址,不顯示內容:

結果顯示

@Testpublic void searchUserRole(){List<User>list=userDao.searchUserRole();for(User u:list){System.out.println(u);System.out.println("\t\t"+u.getRoles());}}

?查看代碼發現沒有問題,難道是實體類的原因?

后來發現實體類少了重寫ToString()方法:

@Overridepublic String toString() {return "Role{" +"id=" + id +", name='" + name + '\'' +", desc='" + desc + '\'' +", users=" + users +'}';}

但是還是有問題,如下,名字重復:

原因在于user表和role表有字段名重復:

<resultMap id="userRoleMap" type="com.aaa.entity.User"><!--主鍵字段對應的屬性;property:實體類屬性;column:數據庫列名--><id property="id" column="id"></id><!--非主鍵字段--><result property="name" column="name"></result><result property="birth" column="birth"></result><result property="gender" column="gender"></result><result property="address" column="address"></result><!--建立了一對多關系之后,需要繼續--><collection property="roles" ofType="role"><id property="id" column="id"></id><result property="name" column="name"></result><result property="desc" column="desc"></result></collection></resultMap>

?原來的sql語句:

SELECT u.*,r.* FROM user u left JOIN user_role ur on u.id=ur.uid left JOIN role r on ur.rid=r.id

使用別名之后:

<select id="searchUserRole" resultMap="userRoleMap">SELECT u.*,r.id rid,r.name rname,r.descFROM user u left JOIN user_role ur on u.id=ur.uidleft JOIN role r on ur.rid=r.id</select>

?

再看執行效果:

最終結果正常!

總結

以上是生活随笔為你收集整理的mybatis多对多的问题汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。