Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Java Streams API更新实体

使用Java Streams API更新实体
EN

Stack Overflow用户
提问于 2021-09-24 03:20:02
回答 1查看 65关注 0票数 0

我正在使用streams API基于userid对user对象执行更新操作。下面是我写的代码。有没有更好的方法来重构代码,因为我需要再次获取更新后的用户并发送。

代码语言:javascript
运行
AI代码解释
复制
public User updateUser(int userId, User user){
        System.out.println("User id is "+ userId);
       this.userRepository
                .fetchUserByUserId(userId)
                .map(u -> {
                    u.setUserId(user.getUserId());
                    u.setUsername(user.getUsername());
                    u.setEmailAddress(user.getEmailAddress());
                    return u;
                });
        return this.userRepository.fetchUserByUserId(userId).get();
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-24 04:06:51

我看不出有任何理由要再取一次

您可以将用户映射到更新的用户并返回新的用户。

代码语言:javascript
运行
AI代码解释
复制
public User updateUser(int userId, User user){
        System.out.println(String.format("UserId is %s",userId));
        return this.userRepository
                .fetchUserByUserId(userId)
                .map(u -> this.mergeUsers(u,user));
        
    }

   public User mergeUsers(Optional<User> dbUser, User newUser){
    if(dbUser.isPresent())
      return user.builder()
             .emailAddress(newUser.getEmailAddress())
             .username(newUser.getUsername()).build();
   else
      // Do something else. 
  }

// Setting Id is irrelevant cause it is same value.. youre fetching by this value.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69314165

复制
相关文章
Java 8 中的 Streams API 详解
Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错, 但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。
编程十年
2019/09/17
1.1K0
ES更新嵌套数组(使用Java API)
最近在学习ElasticSearch,前些天在工作中遇到一个难以解决的问题,问题正如标题所示在使用Java TransportClient更新ES复杂数据结构数组,最后请教大佬问题得以解决。此文章将详细描述问题并提供解决办法。
allsmallpig
2022/01/06
2.8K0
java8 Streams API 详解(下)-- 详解 Stream 操作
上一篇文章中,我们介绍了 Streams API 是如何使用的,以及列出了 java8 中 Streams API 包含的所有操作。
用户3147702
2022/06/27
7650
java8 Streams API 详解(下)-- 详解 Stream 操作
java8 Streams API 详解(上) -- 入门篇
多年前,我们在介绍 java8 新特性的时候,提到过作为 java8 一个亮点的新特性 -- streams api
用户3147702
2022/06/27
9990
java8 Streams API 详解(上) -- 入门篇
使用Java Streams(流)查询数据库
在本文中,您将了解如何编写纯Java应用程序,这些应用程序能够使用来自现有数据库的数据,而无需编写一行SQL(或类似的语言,如HQL),也无需花费大量时间将所有内容组合在一起。在应用程序准备好之后,您将学习如何使用 in-JVM-acceleration(仅添加两行代码)加速超过1,000倍的延迟性能。
程序你好
2018/10/18
3.1K0
使用Java Streams(流)查询数据库
Java8 - Streams flatMap()
在 Java 8 中,我们可以使用 flatMap 将上述 2 级 Stream 转换为一级 Stream 或将 二维数组转换为 一维数组。
小小工匠
2023/01/03
1.6K0
Java8 - Streams flatMap()
Java 8 Streams map() 示例
在Java 8中stream().map(),您可以将对象转换为其他对象。查看以下示例:
三产
2021/01/12
7130
Java8 - Streams map()
Stream.map()是Stream最常用的一个转换方法,它把一个Stream转换为另一个Stream
小小工匠
2023/01/01
4640
Java8 - Streams map()
Java 9 新特性:Reactive Streams
Reactive Streams Reactive Streams 是一个使用非阻塞背压机制的异步流处理标准。 back pressure(背压)是其中的关键概念。在异步模式中,消费者订阅生产者,从生产者那里获取数据,需要提供回调方法,当生产者产生新的可用数据后,就调用回调方法。当生产者发送数据的速度大于消费者处理的速度时,消费者就会抢占更多的资源来处理,并且有崩溃的可能。为了防止这种问题,需要一种机制,能让消费者通知生产者:生产速度太快了需要减速,然后生产者可以进行相应调整。这个机制就叫做背压。 背压可以
dys
2018/06/04
1.5K0
java9系列(四)Process API更新
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/lib/src.zip!/java.base/java/lang/ProcessHandle.java
code4it
2018/09/17
4900
Java开发之使用Java 8 Streams 对数据库进行 CRUD 操作
Speedment 是一个开放源代码的工具集,它可以被用来生成 Java 实体,并且能将我们同数据库的通信过程管理起来。你可以利用一个图形工具连接到数据库并生成出一套完整的 ORM 框架代码来表示域模型。但是 Speedment 不单单只是一个代码生成器而已,它还是一个能插入应用程序中的运行时程序,这样就有可能将你的 Java 8 流式代码翻译成优化过的SQL查询。这也是我将会在本文中专门讲述的一个部分。
用户1289394
2018/12/07
5210
更新图片 API
在之前,制作过一个图片 API ( https://www.alongw.cn/alongw-api ),但是因为种种原因,不方便管理,不方便调整内容,也因为种种原因,经常更换和禁止调用
阿龙w
2023/10/18
1660
更新图片 API
如何在 Java 8 中使用 Streams?结合多种案例剖析学习!
Java 8 Streams 是一个非常强大的功能,它提供了一种简洁、优雅的方式来处理数据集合。通过使用 Streams,我们可以轻松地过滤、映射、排序、聚合等操作数据。本教程将介绍 Streams 的基本概念,以及如何在 Java 8 中使用 Streams。本教程还包括许多代码示例,以帮助您更好地理解 Streams 的工作方式。
网络技术联盟站
2023/04/23
9010
如何在 Java 8 中使用 Streams?结合多种案例剖析学习!
【HDFS】Java_API使用
首先完成Java开发环境准备,创建工程并导入开发所需的Jar包。之后在准备好的工程中完成以下步骤。
十里桃花舞丶
2021/09/10
4770
iceberg的java api使用
了解一个组件的最好方式是先使用该组件,今天我们就来聊聊如何通过java api对iceberg进行操作。
陈猿解码
2023/03/21
2.9K4
iceberg的java api使用
使用Java Api 操作HDFS
如题 我就是一个标题党 就是使用JavaApi操作HDFS,使用的是MAVEN,操作的环境是Linux
梅花
2020/09/28
1.6K0
java api使用ElastichSearch指南
比如想要addr是beijing的,同时必须满足条件:name是 paxi,或者,phoneNumber是 1234567890
爬蜥
2019/07/09
1.4K0
使用Java操作Elasticsearch(Elasticsearch的java api使用)
1、Elasticsearch是基于Lucene开发的一个分布式全文检索框架,向Elasticsearch中存储和从Elasticsearch中查询,格式是json。
别先生
2019/10/23
11.5K0
使用Java操作Elasticsearch(Elasticsearch的java api使用)
Java8Streams流分组操作讲解
本文翻译自国外论坛 medium,原文地址:https://salithachathuranga94.medium.com/java-8-streams-groupby-b15054d9e6c8
wayn
2023/08/28
5360
Java8Streams流分组操作讲解
hutool框架经常使用的api(不定时更新)
Hutool是一个小而全的Java工具类库,通过静态方法封装; 学习这个就是学习里面的方法
一写代码就开心
2022/06/14
1.2K0
hutool框架经常使用的api(不定时更新)

相似问题

如何使用Java API Streams执行此类操作?

223

使用java 8 streams api进行嵌套查找

21

java streams API中的GroupingBy

10

使用Java 8 streams时更新现有Map对象

12

Java Streams API的Javascript等效项

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档