请建议如何编写一个java类来读取mule有效负载并从中读取值并将它们分配给DTO,这样我就可以返回相同的内容。
如何使用数据库中的值发送回DTO,我在阅读有效负载或转换它时面临问题。
答案 0 :(得分:1)
如果您使用的是企业版,则可以使用DataWeave将结果集转换为pojos。数据库连接器返回行的Hashmap的ArrayList。您可以遍历此列表并创建pojo,例如。 -
%dw 1.0
%output application/java
---
payload map {
({id: $.id,
name: $.name}) as :object {class:'com.my.PersonPojo'}
}
答案 1 :(得分:0)
您可以使用MEL映射语法从数据库读取有效负载,而不是使用java组件。 干杯!
答案 2 :(得分:0)
通过此
获取java中的有效负载List<String> list = eventContext.getMessage().getPayload();
将其分配给列表并对其进行迭代并将其加载到list<DTOObject>
List<DTOObject> dtos = new ArrayList<DTOObject>();
for(String eachValue : list) {
dto.setValue(eachValue);
dtos.add(dto);
}
return dtos;
这会将列表dtos
返回到有效负载,您可以在下一个组件中获取它们。
如果要从流中的任何位置获取它们,请将列表设置为java中的会话变量
eventContext.getMessage().setProperty("dtoList", dtos, PropertyScope.SESSION);
抓住sessionVars.dtolist
来获取列表。迭代并获得每个值。