Modelmapper 转换对象:从 Tuple 到 AnyClass

Modelmapper to convert objects: from Tuple to AnyClass

我有一个 returns 元组类型对象的方法,其值:类别类型类别和总计类型 BigDecimal。

如何实现 modelMapper 方法以将元组映射到具有两个属性(类别 - 类型类别和总计 - BigDecimal 类型)的产品类型 class?

如何实现这个方法将n个值的元组对象转换为具有n个相应属性的任何其他对象?

List<Tuple>List <AnyClass>的情况下如何实现这个方法?

List<Tuple>List<Product>的情况下,我有以下一段功能代码。它是不完整的,它只是映射了第一个属性,在类别的情况下。

注意:productsTuple 是一种从存储库返回的 List<Tuple> 对象。

List<Product> products = productsTuple
            .stream()
            .map(p -> modelMapper.map(p.get(0), Produto.class))
            .collect(Collectors.toList());

你可以试试这个。 (修复)

List<Product> products = productsTuple
            .stream()
            .map(p -> {
                Map<String, Object> maps = new HashMap<>();
                p.getElements().forEach(te -> {
                    maps.put(te.getAlias(), p.get(te.getAlias()));
                });
                return modelMapper.map(maps, Product.class));
            })
            .collect(Collectors.toList());

我认为有一个小的编译错误。此外,这仅在您设置别名时有效。

应该是

            List<Product> products = tupleResult
                    .stream()
                    .map(p -> {
                        Map<String, Object> maps = new HashMap<>();
                        p.getElements().forEach(te -> {
                            maps.put(te.getAlias(), p.get(te.getAlias()));
                        });
                        return modelMapper.map(maps, Product.class);
                    })
                    .collect(Collectors.toList());