我想知道是否必须反映课程中的相关属性
如果我使用带有连接的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>
我的公司课程会是什么样子? 我是否必须创建一个包含公司级别作为对象的新类?
答案 0 :(得分:0)
Company类将有三个字段,一个整数id,一个String名称,以及一个名为CompanyLevelId的CompanyLevel对象。 CompanyLevel类还将有三个字段,CompanyLevelId,Operator和level。
该关联会将您的联接结果转换为LevelMap结果图定义的CompanyLevel对象。
因此,您的公司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类的级别和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>