有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

未映射java Mybatis继承的属性

我有两个类,其中一个继承另一个。我试图将我的结果集映射到子类,而Mybatis忽略了超类上的属性(setter也在超类上)

代码如下:

public class CocTreeNode extends CocBean implements TreeNode<CocTreeNode> {

  private String level1, level2;

  public void setLevel1(String level1){...}
  public void setLevel2(String level2){...}

  public String getLevel1(){...}
  public String getLevel1(){...}

}

public class CocBean {

  protected String name;
  protected Double volume;

  public void setName(String name){...}
  public void setVolume(Double volume){...}

  public String getName(){...}
  public Double getVolume(){...}

}

我的结果图是-

<resultMap id="simpleRow" type="CocTreeNode">
  <id property="level1" column="LEVEL1"/>
  <id property="level2" column="LEVEL2"/>
  <result property="name" column="NAME"/>
  <result property="volume" column="VOLUME"/>
</resultMap>

生成的CocTreeNode对象填充有“level1”和“level2”属性,但不填充“name”和“volume”

我尝试过使用extends,但没有任何区别

如有任何意见,将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    您必须在simpleRow resultmap中使用扩展,以从CocBean的resultmap扩展属性:

    <resultMap id="CocBeanResult" type="CocBean">
        <result property="name" column="NAME"/>
        <result property="volume" column="VOLUME"/>
    </resultMap>
    
    <resultMap id="simpleRow" type="CocTreeNode" extends="CocBeanResult">
        <result property="level1" column="LEVEL1"/>
        <result property="level2" column="LEVEL2"/>
    </resultMap>