我萌吧!
問題描述:
如果三表(包括了關(guān)系表)級(jí)聯(lián)查詢,主表和明細(xì)表的主鍵都是id的話,明細(xì)表的多條數(shù)據(jù)只能查詢出來第一條/最后一條數(shù)據(jù)。
三個(gè)表,權(quán)限表(Permission),權(quán)限組表(PermissionGroup),權(quán)限組與權(quán)限的關(guān)系表(PermissionPermissionGroupKey)
原出錯(cuò)映射文件:
原出錯(cuò)映射文件
出錯(cuò)原因:
這是因?yàn)橹鞅砗兔骷?xì)表的id字段名相同造成的。 問題的關(guān)鍵在于resultMap中如果不定義類似主鍵之類的能夠區(qū)分每一條結(jié)果集的字段的話,會(huì)引起后面一條數(shù)據(jù)覆蓋前面一條數(shù)據(jù)的現(xiàn)象。
如何解決?
解決方法一:
修改主表或者明細(xì)表的id名,保證不一致就行。
解決方法二:
查詢結(jié)果起別名。
修改后的映射文件如下:
修改后的映射文件