Java 如何使用Dozer将简单ArrayList映射到VO
我正在使用推土机转换我的对象。但我有一个问题来映射一个简单的列表。。。 我从Java 如何使用Dozer将简单ArrayList映射到VO,java,dozer,Java,Dozer,我正在使用推土机转换我的对象。但我有一个问题来映射一个简单的列表。。。 我从Hibernate中检索ResultSet作为对象列表,并希望将其映射到我的复杂类型对象 因此,我的来源如下: List < Object > list = new ArrayList< Object > (); list.add("Name"); list.add("Address"); 我只想映射列表[0]==>MyClass.name和列表[1]=>MyClass.address属性,但我
Hibernate
中检索ResultSet
作为对象列表
,并希望将其映射到我的复杂类型对象
因此,我的来源如下:
List < Object > list = new ArrayList< Object > ();
list.add("Name");
list.add("Address");
我只想映射列表[0]
==>MyClass.name
和列表[1]
=>MyClass.address
属性,但我找不到如何
谢谢你的帮助 由于某些原因,推土机不支持这种情况(理想情况):
MyHolder
类只在holded
字段中包含您的列表
实例,并通过getter方法提供对它的访问
在字段中,需要映射
is accessible=“true”
,因为MyClass
属性是public
并且没有访问器。我建议您将这些属性设置为私有属性,并创建访问器方法 好的,我也尝试使用您的第一个解决方案,但没有成功:(.正如您所说,属性由值[Name,Address]填充).对于您的最后一个解决方案,我认为它不性感…我不喜欢无用地包装对象,但我同意您的意见,这是最好的选择!当然,要完成此示例,属性名称和地址是公共的,但仅用于示例:)。多亏了你。作为参考,我决定使用地图而不是列表,列表很容易和“this”符号一起使用。
public class MyClass
{
public String name;
public String 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>
<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>