我有一个LegacyAcCountDto,我需要从两个不同的来源建立一个列表。一个是本地JPA存储库,另一个是Web服务调用。Web服务版本具有JPA数据源不可用的帐户状态。我需要并行执行两个调用,当它们都完成时,我需要找到Web服务列表的legacyId,并用从Web服务中提取的帐户状态填充列表。整个想法是返回一个包含完整DTO的列表。我不需要把它保存回网络服务或JPA回购
DTO:
@Data
@JsonInclude(Include.NON_NULL)
public class LegacyAccountDto {
private UUID id;
private UUID organizationId;
private String name;
private String website;
private Long legacyAccountId;
private LocalDateTime legacyCreated;
private String accountType;
private String accountState;
}
merge语句中的每个函数都返回一个LegacyDTO流
Flux<LegacyAccountDto> completed = Flux.merge(
getLegacyAccountsFromSvc(accountNames),
Flux.fromIterable(accountMapper.accountListToLegacyAccountDtoList(accountRepository.getAccountsByNames(accountNames).get()))
)
.parallel()
.runOn(Schedulers.elastic())
.???????((list1, list2) -> {
list2.map(l2 -> {
//find list1 by legacyId
//set l2.accountStatus = l1.accountstatus
})
//return the completed list as a flux
})
我不确定接下来调用什么函数,以便能够访问两个列表并从第二次调用中获取帐户状态,并且能够合并它,并且不返回并行通量类型,而不仅仅是LegacyDto的通量
你可以这样做:
Mono<List<LegacyAccountDto>> firstMonoList = getLegacyAccountsFromSvc(accountNames).collectList();
Mono<List<EntityX> secondMonoList = accountMapper.accountListToLegacyAccountDtoList(accountRepository.getAccountsByNames(accountNames).get()).collectList();
Mono.zip(firstMonoList, secondMonoList)
.map(listTuple -> {
// do the searching and map to list of dtos
return resultingList;
})
.flatMapMany(Flux::fromIterable);
不建议在反应流中使用阻塞数据库调用。如果你有选择的话,你可以添加R2DBC
驱动程序,让整个过程都是被动的。
rank ▲ ✰ vote url 65 357 50 683 url 合并两个列表 怎样合并两个列表? 例如: listone = [1,2,3] listtwo = [4,5,6] 我期待: mergedlist == [1, 2, 3, 4, 5, 6] 在Python中非常容易. mergedlist = listone + listtwo
问题内容: 如何合并结构相同的两个MySQL表? 这两个表的主键将发生冲突,因此我考虑了这一点。 问题答案: 您也可以尝试: 这允许table_1中的行取代table_2中具有匹配主键的行,同时仍插入具有新主键的行。 或者, 将使用来自表_2的相应行更新表_1中已经存在的行,同时插入具有新主键的行。
我有两个数组列表ar1和ar2。 ArrayList ar1包含一个对象列表,每个对象都具有属性ID、名称和状态<代码>数组列表ar2包含一个对象列表,每个对象都具有属性ID、名称和主题。ar1和ar2的大小相同。 有什么方法可以将这两个列表合并到一个新的列表ar3中,其中包含一个对象列表,每个对象都具有属性ID、名称、状态和主题? 更新:两个列表中的ID和名称相同。
问题内容: 我有第一个json: 第二个: 我想合并/合并两个数据数组,例如: (我现在不在乎)。 如何快速简便地做到这一点?这是我的尝试: 但是会引发异常: 问题答案: JArray dataOfJson1=json1.SelectToken(“data”);
我想将两个ObjectNode合并在一起,但要具有最佳的复杂性。我知道一种方法,我可以使用setAll方法,但它返回JsonNode,因此我必须转换它。我发现的转换过程的最佳方法是如何将JsonNode转换为ObjectNode。我认为这种转换一旦迭代Json,也许我们可以找到一个更好的解决方案。 我认为第二种方法是迭代第二个ObjectNode,然后用put方法一个接一个地添加到第一个Objec
知乎远程面试要求编程 尾递归 def _recursion_merge_sort2(l1, l2, tmp): if len(l1) == 0 or len(l2) == 0: tmp.extend(l1) tmp.extend(l2) return tmp else: if l1[0] < l2[0]: tmp.append(l1[0])