0

関連するプロパティをクラスに反映する必要があるのだろうか

結合で選択を使用し、次にマッパーを作成する場合

<resultMap type="Company.Company" id="companyResult"  >
    <result column="id"    property="id" />
    <result column="name"  property="name" />    
    <association property="CompanyLevelId" resultMap="LevelMap" />
</resultMap>

<resultMap id="LevelMap"   type="Company.CompanyLevel"  >
    <id     column="CompanyLevelId"    property="CompanyLevelId" />
    <result column="Operator"         property="Operator" />
    <result column="Level"            property="level" />
</resultMap>

私の会社のクラスはどのようになりますか? クラス Company レベルをオブジェクトとして含む新しいクラスを作成する必要がありますか?

4

1 に答える 1

0

Company クラスには、整数 ID、文字列名、および CompanyLevel オブジェクト (この場合は CompanyLevelId) の 3 つのフィールドがあります。CompanyLevel クラスにも、CompanyLevelId、Operator、および level の 3 つのフィールドがあります。

関連付けは、結合の結果を、LevelMap 結果マップで定義されている CompanyLevel オブジェクトに変換します。

したがって、Company の Java クラスは次のようになります。

public class Company{
    int id;
    String name;
    CompanyLevel CompanyLevelId; //this name is defined by the 'property' attribute

    public Company(){
    }
    //getters and setters
}

CompanyLevel は次のようになります。

public class CompanyLevel{
    int CompanyLevelId;  //once again defined by 'property' attribute
    String Operator;
    int level;

    public CompanyLevel(){
    }
    //getters and setters
}

わかりやすくするために、プロパティ名を CompanyLevelId から、Company クラスの場合は level 、CompanyLevel クラスの場合は id などに変更し、関連付けに Java タイプを指定します。これにより、次のようになります。

<resultMap type="Company.Company" id="companyResult"  >          
    <result column="id"    property="id" />          
    <result column="name"  property="name" />              
    <association property="level" resultMap="LevelMap" javaType="Company.Company" />          
</resultMap>          

<resultMap id="LevelMap"   type="Company.CompanyLevel"  >          
    <id     column="CompanyLevelId"    property="id" />          
    <result column="Operator"         property="operator" />          
    <result column="Level"            property="level" />          
</resultMap> 
于 2012-08-01T17:05:49.980 に答える