亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mybatis的關聯查詢能查多層嗎?

mybatis的關聯查詢能查多層嗎?

穆男神 2018-04-18 18:00:02
比如我有三個表:表關系是廠家<品牌<型號,我們知道mybatis在mapper.xml中的BaseResultMap里配置好collection和assocation,然后查詢語句配置resultMap成BaseResultMap,就可以單層級聯查詢,就是說,我查廠家同時能查到品牌,但是查不到型號?,F在想問一下 怎么配置能查廠家的時候,不止對應的品牌能查到,還能找到每個品牌對應的型號。類似hibernate的查詢效果
查看完整描述

3 回答

?
慕沐9307871

TA貢獻27條經驗 獲得超9個贊

首先把所有關聯設置好,然后在配置collection和assocation時用select屬性調用就可以了。
需要考慮這樣的缺點是系統消耗太大,畢竟mybatis不像hibernate緩存考慮的那么完善,mybatis優點就是輕量。

查看完整回答
反對 回復 2018-04-19
  • 穆男神
    穆男神
    具體怎么配置關聯呢?
  • 慕沐9307871
    慕沐9307871
    vo里設置關聯對象或集合,映射文件里配置collection或assocation就可以了,只不過不配置內部屬性映射
?
北七哦

TA貢獻33條經驗 獲得超4個贊

要自己寫個你想查詢結果的vo實體吧,然后自己寫sql語句查出來。把resultMap對應的實體換成自己寫的那個

查看完整回答
反對 回復 2018-04-19
?
烏云下的風

TA貢獻40條經驗 獲得超10個贊

https://img1.sycdn.imooc.com//5ad80b530001080611860876.jpg

我這個resultMap是查看詳情時一次拿出來的

查看完整回答
反對 回復 2018-04-19
  • 穆男神
    穆男神
    這是查詢產品通過懶加載獲得的數據嗎?如果是 那么 你的產品類的mapper.xml 中 styles這個collection 的select屬性對應的sql語句是用的resultMap還是resultType?內容又是什么呢?
?
烏云下的風

TA貢獻40條經驗 獲得超10個贊

	<resultMap?id="StyleMap"?type="com.ccytsoft.model.pc.ProductStyleModel"?>
		<result?property="id"?column="sid"?/>
		<result?property="pid"?column="spid"?/>
		<result?property="name"?column="sname"?/>
		<result?property="title"?column="stitle"?/>
		<result?property="image"?column="simage"?/>
		<result?property="sort"?column="ssort"?/>
		<association?property="fitlist"?javaType="com.ccytsoft.print.repository.model.Fittings"?>
				<result?property="id"?column="id"?/>
				<result?property="code"?column="code"?/>
				<result?property="name"?column="name"?/>
				<result?property="title"?column="title"?/>
				<result?property="image"?column="image"?/>
				<result?property="price"?column="price"?/>
				<result?property="close"?column="close"?/>
		</association>
		
	</resultMap>
	
	
public?class?ProductStyleModel?{
	private?Integer?id;
	private?String?name;
	private?String?title;
	private?String?image;
	private?Integer?sort;
	private?Integer?pid;
	private?Integer?gid;
	private?Integer?fid;
	private?List<FittingGroup>?grouplist=new?ArrayList<FittingGroup>();
	
	private?List<Fittings>?fitlist???=??new?ArrayList<Fittings>();

這個關系映射是集合(包)集合,你要的數據什么包裝的,你想要什么結構什么樣子的數據。

查看完整回答
反對 回復 2018-04-19
  • 穆男神
    穆男神
    你的Fittings這個對象,如果還有其他關聯的對象怎么解決???你這么寫 能找到ProductStyleModel對應的Fittings,但是如果Fittings還關聯其他對象,查ProductStyleModel的同時能查Fittings,但不能同時查到Fittings關聯的對象。 我說的是類似hibernate的無論多少層 一對多 ,都可以通過對象的get方法獲取到。
  • 烏云下的風
    烏云下的風
    理論是可以的
  • 烏云下的風
    烏云下的風
    你說的hibernate,針對多層時需要懶加載,我沒弄過,不怎么用hibernate了,我現在基本只用mybatis
  • 3 回答
  • 0 關注
  • 2679 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號