阵列对象列表映射到Pojo列表

问题描述 投票:0回答:1

我有一个JDBC结果集为 List<Object[]> &amp; 需要将其转换为 List<ObjectType> 在Spring引导下,我尝试使用Dozer。

// Input Object Array returned by below code
List<Object[]> resultObj = query.getResultList();
// Ex
resultObj[0][0] = new Integer(10);
resultObj[0][1] = "Test";
resultObj[0][2] = "Hello";

// Need map resultObj to List<ObjectType> below type

class ObjectType {
    //maps to Object[0]
    private Integer x;
    //maps to Object[1]
    private String y;
    //maps to Object[2]
    private String z;
}

由于object[]有超过18个元素,所以我没有手动将每个索引映射到POJO的字段,而是尝试使用Dozer。

<mapping>
        <class-a>java.lang.Object[]</class-a>
        <class-b>com.ObjectType</class-b>
        <field>
            <a>this[0]</a>
            <b>x</b>
        </field>
        <field>
            <a>this[1]</a>
            <b>y</b>
        </field>
</mapping>

我试着按照这个答案来做 https:/stackoverflow.coma26556413350705。但输出映射对象的值低于--所有字段的值都相同& 地址空间的值也相同

"x": "[Ljava.lang.Object;@2d716a1c",
"y": "[Ljava.lang.Object;@2d716a1c",
"z": "[Ljava.lang.Object;@2d716a1c",

请建议是否有其他可配置的方法。

java spring-boot dozer
1个回答
0
投票

试试下面的东西,可能会有帮助。解释请参考这个链接 https:/sourceforge.netpdozerdiscussion452530thread012023da。

<mapping>
    <class-a>java.lang.Object[]</class-a>
    <class-b>com.ObjectType</class-b>
    <field>
        <a>this</a>
        <b set-method="add(java.lang.Object)" type="iterate">anything</b>
        <b-hint>your destination object type</b-hint>
    </field>

© www.soinside.com 2019 - 2024. All rights reserved.