2012-12-06 14 views
5

Ich habe zwei Klassen, von denen die eine die andere erbt. Ich versuche, meine resultSet an die Unterklasse abzubilden und Mybatis wird die Eigenschaften auf der übergeordneten Klasse (Setters auch auf der übergeordneten Klasse) zu ignorierenMybatis - Vererbte Eigenschaften, die nicht zugeordnet werden

-Code ist wie folgt:

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(){...} 

} 

Mein resultMap ist -

<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> 

Die resultierenden CocTreeNode Objekte werden mit ‚ebenen1‘ bevölkert und ‚level2‘ Attribute aber nicht ‚Name‘ und ‚Volumen‘.

Ich habe versucht mit erweitert, aber das machte keinen Unterschied.

Irgendwelche Ideen werden geschätzt.

+0

Sind Sie sicher, arbeiten, um Ihre SQL-Anweisungen in Ordnung? – boskonovic

+0

Ja. Wenn Sie den Code von CocBean (Superklasse) in CocTreeNode kopieren, werden alle Eigenschaften korrekt festgelegt. –

Antwort

9

Sie haben erweitert in Ihrem simpleRow resultmap verwenden, um Eigenschaften von CocBean des resultmap zu erweitern:

<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> 
+0

Das war es. Vielen Dank! –

+0

Ich bin froh, dass Sie meine Antwort hilfreich finden. Sie sollten es dann akzeptieren. – Behnil

+0

Meine Anforderungen haben sich geändert und ich habe die Superklasse abstrakt gemacht. Das erweiterte Attribut scheint jetzt nicht zu funktionieren. –

Verwandte Themen