繁体   English   中英

MyBatis Mapper关联反映在Java类中

[英]MyBatis Mapper association reflected in java class

我想知道是否必须在课堂上反映相关属性

如果我将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类将具有三个字段,一个整数id,一个字符串名称和一个名为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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM