@many與@one的使用方法相同,用于表示一對(duì)多的關(guān)系。我們?nèi)匀皇褂弥暗腢ser(用戶(hù))和Hobby(興趣)之間的一對(duì)多關(guān)系作為例子,來(lái)學(xué)習(xí)@many的使用方法。同樣,先回顧下之前用MapperXML配置的一對(duì)多關(guān)系模型:
User類(lèi)中有一個(gè)hobbyList,用于存放一個(gè)用戶(hù)的所有興趣愛(ài)好的對(duì)象。具體代碼如下:
Hobby數(shù)據(jù)庫(kù)表中存放一個(gè)userId的字段,用于標(biāo)識(shí)是哪個(gè)用戶(hù)的愛(ài)好。接下來(lái)我們添加一個(gè)IhobbyDao的Mapper接口,定義一個(gè)根據(jù)UserId查詢(xún)出所有興趣愛(ài)好的接口,并適用注解標(biāo)記對(duì)應(yīng)的查詢(xún)SQL。代碼如下:
接下來(lái)我修改User的Mapper接口IuserDao類(lèi):
這里我們使用了@Many注解的select屬性來(lái)指向一個(gè)完全限定名方法,該方法將返回一個(gè)List對(duì)象。使用column=”userId”,user數(shù)據(jù)表中的userId列值將會(huì)作為輸入?yún)?shù)傳遞給findHobbyListByUserId()方法。