变换递归加入到Java对象

问题描述:

比方说,我有以下型号变换递归加入到Java对象

public class ExampleComment { 
    private int id; 
    private Integer commentOf; 
    private List<ExampleComment> comments; 
    ... 
    getters, setters 
    ... 
} 

和数据库:

id | commentOf 
1 | null 
2 | 1 
3 | 1 
4 | 2 

如果我使用一些讨厌的SQL过程,我(这可能不是正确的解决方案?)仍然不知道如何将它转换成mybatis中的java对象。

我知道,当我在做同样在.NET中,它是由实体框架制成,所以大概应该可以在MyBatis的做,但我不能找到对谷歌的任何解决方案。

假设评论属性将所有留言给其当前的注释是COMMENTOF列,下面应该工作。

主要评论的ResultMap:

<resultMap id="commentMap" type="ExampleComment"> 
    <id property="id" column="id" /> 
    <result property="commentOf" column="commentOf" /> 
    <collection property="comments" javaType="ArrayList" column="COMMENTOF" ofType="ExampleComment" select="selectChildComments" 
</resultMap> 

选择selectChildComments:

<select id="selectChildComments" resultMap="commentMap"> 
    SELECT ID, COMMENTOF FROM COMMENT_TABLE WHERE COMMENTOF=#{id} 
</select> 
+0

wooow,这个作品!谢谢! 我做的唯一一个改变是我改变了column =“COMMENTOF” - > column =“ID” – Eleer