Closed. This question needs to be more focused。它当前不接受答案。
                        
                    
                
            
        
            
        
                
                    
                
            
                
                    想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                
                    2年前关闭。
            
        

    

假设我有以下模型

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中进行制作,但我在Google上找不到任何解决方案。

最佳答案

假设comments属性将在COMMENTOF列中包含当前评论的所有评论,则应该可以进行以下操作。

主要评论结果图:

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

09-27 10:07