0

我想知道是否必须在类中反映相关属性

如果我将 select 与连接一起使用,然后创建一个映射器,即

<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 level 类作为对象的新类?

4

1 回答 1

0

Company 类将具有三个字段,一个整数 id、一个字符串名称和一个 CompanyLevel 对象,在本例中称为 CompanyLevelId。CompanyLevel 类还将具有三个字段,CompanyLevelId、Operator 和 level。

该关联会将您的连接结果转换为 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 回答