小编Prz*_*iec的帖子

使用Java 8流处理嵌套集合

最近我在使用嵌套集合(List中的Maps值)时遇到了一个问题:

List<Map<String, Object>> items
Run Code Online (Sandbox Code Playgroud)

在我的案例中,此列表包含10-20个地图.在某些时候我不得不将Calculationkey的值替换descriptionRating.所以我想出了这个解决方案:

items.forEach(e -> e.replace("description","Calculation","Rating"));
Run Code Online (Sandbox Code Playgroud)

如果此列表中的所有映射都包含键值对,那将是非常精细和有效的解决方案["description", "Calculation"].不幸的是,我知道整体上只有一对List<Map<String, Object>>.

问题是:

是否有更好(更有效)的解决方案来查找和替换这一个值,而不是使用Java-8流迭代所有List元素?

完美将是在一个流中完成它而不对其进行任何复杂/混淆操作.

java optimization dictionary java-8 java-stream

8
推荐指数
1
解决办法
289
查看次数

spring.jpa.hibernate.hbm2ddl 和 spring.jpa.hibernate.ddl 的区别

spring.jpa.hibernate.hbm2ddl和 和有spring.jpa.hibernate.ddl什么区别?

我在这个问题中发现:spring.datasource.initialization-mode 的可能值是什么?OP 在属性中同时使用这两者,但是它的来源似乎hbm2ddl是直接休眠而不是 Spring Data Jpa。

尽管如此,从另一个 OP阅读 答案,它看起来只是通过。

但是在我们使用 mariadb 的商业项目中,当我们没有优雅地关闭我们的 spring boot 应用程序时spring.jpa.hibernate.hbm2ddl.auto=create,当应用程序再次运行时,它会删除旧数据并从头开始创建所有内容。另一方面,spring.jpa.hibernate.ddl.auto=create每秒运行一次(在没有正常关闭应用程序之后)会导致关键约束异常(DB 在创建之前不是 dropper)

java spring hibernate jpa spring-boot

5
推荐指数
1
解决办法
821
查看次数

MockHttpServletRequestBuilder - 如何更改 HttpServletRequest 的 remoteHost 的 remoteAddress?

我正在尝试为集成测试(@SpringBootTest)创建模拟请求。

//given     
MockHttpServletRequestBuilder requestBuilder = get("/users/register/user1");
Run Code Online (Sandbox Code Playgroud)

我想检查的是这个请求的遥控器。在我的控制器中,我从HttpServletRequest获取此信息

HttpServletRequest request;
request.getRemoteHost();
request.getRemoteAddr();
Run Code Online (Sandbox Code Playgroud)

不幸的是,现在getRemoteHost()总是会返回localhost

我想在我的模拟请求中将其更改为其他内容,例如:

远程主机:localhost-->mockhostdomain

远程地址:127.0.0.1--> 10.32.120.7(任何不同)

我找不到合适的方法。甚至有可能吗?

java spring-mvc spring-boot mockmvc spring-boot-test

4
推荐指数
1
解决办法
1984
查看次数