第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

其中的方法的使用

<V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

想問下這個(gè)方法怎么使用,搞不懂

正在回答

4 回答

? ? ? ?先簡(jiǎn)單解釋一下。getObj方法內(nèi)部又調(diào)用了listObjs。listObjs返回一個(gè)list,如果有元素的話,只取第一個(gè),沒有元素的話,返回null。第二個(gè)參數(shù)是一個(gè)Function函數(shù)式接口。就是你不想返回實(shí)體了,想返回一個(gè)自定義類型對(duì)象或其他類型對(duì)象,你要進(jìn)行轉(zhuǎn)換。

看源碼,你就明白啦,給你show一下源碼

ServiceImpl類
@Override
public?<V>?V?getObj(Wrapper<T>?queryWrapper,?Function<??super?Object,?V>?mapper)?{
????return?SqlHelper.getObject(log,?listObjs(queryWrapper,?mapper));
}
SqlHelper類
/**
?*?從list中取第一條數(shù)據(jù)返回對(duì)應(yīng)List中泛型的單個(gè)結(jié)果
?*
?*?@param?list?ignore
?*?@param?<E>??ignore
?*?@return?ignore
?*/
public?static?<E>?E?getObject(Log?log,?List<E>?list)?{
????if?(CollectionUtils.isNotEmpty(list))?{
????????int?size?=?list.size();
????????if?(size?>?1)?{
????????????log.warn(String.format("Warn:?execute?Method?There?are??%s?results.",?size));
????????}
????????return?list.get(0);
????}
????return?null;
}
ServiceImpl類
@Override
public?<V>?List<V>?listObjs(Wrapper<T>?queryWrapper,?Function<??super?Object,?V>?mapper)?{
????return?baseMapper.selectObjs(queryWrapper).stream().filter(Objects::nonNull).map(mapper).collect(Collectors.toList());
}


0 回復(fù) 有任何疑惑可以回復(fù)我~
@Test
public?void?getOneTest04()?{
????queryWrapper.ge("emp_age",?18);
????boolean?b?=?employeeService.getObj(queryWrapper,?(m)?->?{
????????Employee?employee?=?employeeService.getById((Long)m);
????????employee.setEmpPhone("-----");
????????boolean?flag?=?employeeService.updateById(employee);
????????return?flag;
????});
????System.out.println(b);
}

這個(gè)大概懂了,就是不知道為什么那個(gè) m 參數(shù)是 id集合中的當(dāng)前id,而不是一個(gè) Employee集合。

然后就是傳入 wrapper 條件構(gòu)造器之后,為什么就直接會(huì)有一個(gè) id集合返回---? 哈哈哈 我還是個(gè)學(xué)生,問題就是多哦,,老師?

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

老猿

其實(shí)我也不理解,按常理來(lái)說(shuō),m參數(shù)應(yīng)該是實(shí)體類,而實(shí)際測(cè)試結(jié)果它是主鍵。我也很費(fèi)解作者為什么這么設(shè)計(jì)。
2019-12-26 回復(fù) 有任何疑惑可以回復(fù)我~
#2

想好好學(xué)習(xí)的懶人 提問者

謝謝指導(dǎo)
2019-12-27 回復(fù) 有任何疑惑可以回復(fù)我~
#3

amllng 回復(fù) 老猿

真搞不懂,返回主鍵是搞什么,如果想要對(duì)應(yīng)實(shí)體的其他屬性,難道真的要在里邊再查詢一遍數(shù)據(jù)庫(kù),然后取相應(yīng)的值嗎,那我還不如自己寫sql去實(shí)現(xiàn),還減少查詢。
2020-04-02 回復(fù) 有任何疑惑可以回復(fù)我~
#4

a12345531

selectObjs(queryWrapper) 只返回第一個(gè)字段的值,所以后面mapper只能拿到第一個(gè)字段的值
2022-07-14 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

能舉個(gè)栗子不..

0 回復(fù) 有任何疑惑可以回復(fù)我~

就是后面的那個(gè)函數(shù)式接口不會(huì)傳參?對(duì)8的特性理解不夠

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

其中的方法的使用

我要回答 關(guān)注問題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)