上一節(jié)我們知道了一對一關(guān)系使用association的標簽做映射梦谜,那么一對多關(guān)系該如何處理呢?今天小博老師跟大家一起學習ResultMap中,處理一對多映射關(guān)系的標簽collection(聚焦元素)。
聚集元素collection用來處理“一對多”關(guān)系拐揭。需要指定映射以下幾個關(guān)鍵的屬性:
javaType:Java實體類的屬性(一般為ArrayList,可省略)奕塑;
ofType:列表中對象的類型(Java實體類)堂污;
property:Java實體類中的屬性名稱。
比如用戶User與愛好Hobby的一對多關(guān)系中爵川,User類中有一個List包含該用戶所有的愛好列表敷鸦,User類的描述如下:
Hobby類的描述如下:
對應的ResultMap的文件描述:
這里省略了javaType,默認是ArrayList的集合類。
基于以上的ResultMap的定義扒披,我們可以做如下select定義:
Collocation也可以是使用ResultMap屬性定義映射關(guān)系值依。只需要把Hobby單獨定義一個ResultMap,并把collection的ResultMap屬性值指向新定義的結(jié)果集映射即可碟案。
myBatis加載一個聚集還可以使用select方式愿险,它會執(zhí)行一個其它映射的SQL 語句返回一個Java實體類型。這種做法較靈活但會將執(zhí)行多次嵌套的SQL語句价说。這里不再展開贅述辆亏。