2016-06-15 3 views
0

Class1とClass2の2つのクラスがあります。 Class1にClassAオブジェクトのリストがあります。 Class2にはClassBオブジェクトのリストがあります。クラスのリスト要素のドーザーxmlマッピングファイルへのマッピング

Class1が以下のようである: -

public class Class1 
{ 
    private String number_1; 
    private List<ClassA> classA= new ArrayList<ClassA>(); 
    } 
    //all getters and setters 

A級のようなある: -

public class ClassA 
{ 
    private string name_A; 
    private int rollnum_A; 
} 
    //all getters and setters 

クラス2の様である: -

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 
似ています10

以下は、私が作成したドーザファイルです: -

<?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> 

しかし、その動作していない...クラスのオブジェクトのリストをマップする他の方法があります。

答えて

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> 

-ヒント、B-ヒント、クラスAとクラス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>

-ヒントとB-ヒントだけWH宣言されていますデータ型が異なります。

プリミティブ型変数は、マッピングなしで残しておくことができますが、これらはそれぞれのクラスで同じ名前を持つ場合にのみ使用できます。あなたのケースでは、彼らは異なる名前を持っていたのでマップされました。

関連する問題