我有一个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",
请建议是否有其他可配置的方法。
试试下面的东西,可能会有帮助。解释请参考这个链接 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>