有两个名为Class1和Class2的类。 Class1有一个ClassA对象列表。 Class2有一个ClassB对象列表。
Class1如下: -
public class Class1
{
private String number_1;
private List<ClassA> classA= new ArrayList<ClassA>();
}
//all getters and setters
ClassA就像: -
public class ClassA
{
private string name_A;
private int rollnum_A;
}
//all getters and setters
Class2就像: -
public class Class1
{
private String number_1;
private List<ClassB> classB= new ArrayList<ClassB>();
}
//all getters and setters
ClassB就像
public class ClassB
{
private string name_B;
private int rollnum_B;
}
//all getters and setters
以下是我创建的推土机文件: -
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://dozer.sourceforge.net
http://dozer.sourceforge.net/schema/beanmapping.xsd">
<mapping>
<class-a>Class1</class-a>
<class-b>Class2</class-b>
<field>
<a>number_1</a>
<b>number_2</b>
</field>
<field>
<a>name_A</a>
<b>name_B</b>
<a-hint>ClassA</a-hint>
<b-hint>ClassB</b-hint>
</field>
<field>
<a>rollnum_B</a>
<b>rollnum_B</b>
<a-hint>ClassA</a-hint>
<b-hint>ClassB</b-hint>
</field>
</mapping>
</mappings>
但它没有用..有没有其他方法来映射类对象列表。
答案 0 :(得分:1)
映射文件的正确定义如下
<mappings>
<mapping type="bi-directional">
<class-a>Class1</class-a>
<class-b>Class2</class-b>
<field>
<a>classA</a>
<b>classB</b>
<a-hint>ClassA</a-hint>
<b-hint>ClassB</b-hint>
</field>
</mapping>
<mapping type="bi-directional">
<class-a>ClassA</class-a>
<class-b>ClassB</class-b>
<field>
<a>name_A</a>
<b>name_B</b>
</field>
<field>
<a>rollnum_A</a>
<b>rollnum_B</b>
</field>
</mapping>
在a-hint中,b-hint,class-a和class-b标签必须放置类示例的位置:
<class-a>com.project.model.Class1</class-a>
<class-b>com.project.model.Class2</class-b>
<a-hint>com.project.model.ClassA</a-hint>
<b-hint>com.project.model.ClassB</b-hint>
仅当数据类型不同时才声明a-hint和b-hint。
原始类型变量可以保留而不进行映射,但前提是它们在每个类中具有相同的名称。在你的情况下,它被映射,因为它们有不同的名称。