[英]How to map a simple ArrayList to a VO using Dozer
我正在使用推土机转换我的对象。 但是我在映射一个简单的列表时遇到了问题...我从Hibernate
检索一个ResultSet
作为Object List
,我想将其映射到我的复杂类型对象。
所以,我的来源就像:
List < Object > list = new ArrayList< Object > ();
list.add("Name");
list.add("Address");
我的价值对象是:
public class MyClass
{
public String name;
public String address;
}
我只想映射list[0]
==> MyClass.name
和list[1]
==> MyClass.address
属性,但是我不知道如何...
谢谢你的帮助 !
由于某种原因,推土机不支持此操作(理想情况):
<mapping>
<class-a>MyClass</class-a>
<class-b>java.util.List</class-b>
<field>
<a is-accessible="true">name</a>
<b>this[0]</b>
</field>
</mapping>
它只会映射以name
List
的整个字符串表示形式,因此您的name
属性将以[Name,Address]值结尾。
最好的选择是将List
放在一个holder类中,并像这样映射它:
<mapping>
<class-a>MyClass</class-a>
<class-b>MyHolder</class-b>
<field>
<a is-accessible="true">name</a>
<b>holded[0]</b>
</field>
<field>
<a is-accessible="true">address</a>
<b>holded[1]</b>
</field>
</mapping>
MyHolder
类仅在holded
字段中包含List
实例,并使用getter方法提供对其的访问。
在该字段中,必须使用is-accessible="true"
映射,因为MyClass
属性是public
并且没有访问器。 我建议您将这些属性设为private
并创建访问器方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.