国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - 使用Java 8 Lambda表達(dá)式將實(shí)體映射到DTO的操作

使用Java 8 Lambda表達(dá)式將實(shí)體映射到DTO的操作

2020-08-24 00:21dnc8371 Java教程

這篇文章主要介紹了使用Java 8 Lambda表達(dá)式將實(shí)體映射到DTO的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

當(dāng)我們需要將DTO轉(zhuǎn)換為實(shí)體(Hibernate實(shí)體等)并向后轉(zhuǎn)換時(shí),我們都會(huì)面臨混亂的開銷代碼。

在我的示例中,我將用Java 8演示代碼如何變得越來(lái)越短。

讓我們創(chuàng)建目標(biāo)DTO:

?
1
2
3
4
5
6
7
8
9
public class ActiveUserListDTO {
  public ActiveUserListDTO() {
  }
 
  public ActiveUserListDTO(UserEntity userEntity) {
    this.username = userEntity.getUsername();
   ...
  }
}

使用Spring數(shù)據(jù)JPA API檢索所有實(shí)體的簡(jiǎn)單查找方法:

?
1
2
3
4
userRepository.findAll();
Problem:
Find.All() method signature (like many others) returns java.lang.Iterable<T>
java.lang.Iterable<T> findAll(java.lang.Iterable<ID> iterable)

我們不能使用java.lang.Iterable(*在集合上運(yùn)行的Streams來(lái)制作Stream。每個(gè)Collection都是Iterable,但并不是每個(gè)Iterable都是必需的Collection)。

那么,如何獲取Stream對(duì)象以獲得Java8 Lambda的Power?

讓我們使用StreamSupport對(duì)象將Iterable轉(zhuǎn)換為Stream:

Stream<UserEntity> userEntityStream = StreamSupport.stream(userRepository.findAll().spliterator(), false);

大。 現(xiàn)在,我們掌握了Stream,這是Java 8 Labmda的關(guān)鍵!

剩下的就是地圖和收集:

List<ActiveUserList> activeUserListDTOs =

userEntities.stream().map(ActiveUserList::new).collect(Collectors.toList());

我正在使用Java 8 Method Reference,因此將每個(gè)實(shí)體初始化(和映射)到dto中。

因此,讓我們對(duì)所有內(nèi)容進(jìn)行簡(jiǎn)短介紹:

List<ActiveUserList> activeUserListDTOs=StreamSupport.stream(userRepository.findAll().spliterator(), false).map(ActiveUserList::new).collect(Collectors.toList());

那很整齊!!

補(bǔ)充知識(shí):java8中使用Lambda表達(dá)式將list中實(shí)體類的兩個(gè)字段轉(zhuǎn)Map

代碼:

List<Entity> list = new ArrayList<>();

Map<Integer, String> map = list.stream().collect(Collectors.toMap(Entity::getId, Entity::getType));

常用的lambda表達(dá)式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
**
 * List -> Map
 * 需要注意的是:
 * toMap 如果集合對(duì)象有重復(fù)的key,會(huì)報(bào)錯(cuò)Duplicate key ....
 * apple1,apple12的id都為1
 * 可以用 (k1,k2)->k1 來(lái)設(shè)置,如果有重復(fù)的key,則保留key1,舍棄key2
 */
Map<Integer, Apple> appleMap = appleList.stream().collect(Collectors.toMap(Apple::getId, a -> a,(k1,k2)->k1));
 
安照某一字段去重
list = list.stream().filter(distinctByKey(p -> ((ModCreditColumn) p).getFieldCode())).collect(Collectors.toList());
 
List<Double> unitNetValue = listIncreaseDto.stream().map(IncreaseDto :: getUnitNetValue).collect(Collectors.toList());
 
//求和 對(duì)象List
BigDecimal allFullMarketPrice = entityList.stream().filter(value -> value.getFullMarketPrice()!= null).map(SceneAnalysisRespVo::getFullMarketPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
 
 List<BigDecimal> naturalDayList;
 BigDecimal total = naturalDayList.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
 
分組函數(shù)
Map<String, List<SceneAnalysisRespVo>> groupMap = total.getGroupList().stream().collect(Collectors.groupingBy(SceneAnalysisRespVo::getVmName));
 
//DV01之和
BigDecimal allDV01 = values.stream().filter(sceneAnalysisRespVo -> sceneAnalysisRespVo.getDv() != null).map(SceneAnalysisRespVo::getDv).reduce(BigDecimal.ZERO, BigDecimal::add);

以上這篇使用Java 8 Lambda表達(dá)式將實(shí)體映射到DTO的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/dnc8371/article/details/107267037

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲精品高潮呻吟久久av | 蜜桃成人在线 | 香蕉久久夜色精品国产使用方法 | 日韩一区二区三区在线看 | 不卡视频一区二区 | 国产看片网站 | 中文字幕亚洲欧美日韩在线不卡 | 免费观看a毛片 | 在线视频一区二区三区 | 91视频观看 | 欧美一区二区三区在线 | 性色aⅴ免费视频 | 国产成人99久久亚洲综合精品 | 一区影院| 午夜激情影院 | 久久久国产99久久国产一 | 一级毛片一级毛片一级毛片 | 91精品久久 | 欧美操 | 亚洲aⅴ网站 | 亚洲成人在线播放视频 | 国产二区视频 | 激情久久久 | 精品一二三区 | 欧美日韩在线一区二区三区 | 在线婷婷 | 日韩有码在线播放 | 国产精品亚洲视频 | 欧美成人一区二免费视频软件 | 91欧美在线| 婷婷在线免费视频 | 亚洲一区二区精品在线观看 | 婷婷丁香综合 | 欧美成人免费在线视频 | 欧美精品在线一区二区三区 | jlzzjlzz国产精品久久 | 一区二区在线免费观看 | 蜜桃视频成人在线观看 | 亚洲情av | 日本不卡一区二区三区在线观看 | 久久精品国语 |