MyBatis Parent Child 关系

MyBatis Parent Child relation

这是我的class..我保持简单。

public void DummyClass {
   public int id;
   public List<DummyClass> dummyList;

   getter / setter...
}

假设我有一个 table (DummyTable) 有 2 列 id,parentid 并且我有许多行,例如:

身份证、父母身份证
1、1(条目为parent)
2、1(条目有 parent,id 为 1)
3、2(条目有 parent,id 为 2)
4、2 ..
5、3 ..
6、6(条目为parent)
7、6(条目有parent和6)

谁能告诉我在带注释的 mybatis 中它是什么样子的。我这样试过:

public interface DummyMapper {

 final String SelectAll = "Select * from DummyTable";
 final String SelectDummy = "Select * from DummyTable where parentid = #{id}"; 

        @Select(SelectAll)
        @Results({
        @Result(property = "id", column = "id"),
        @Result(property = "dummyList", column = "id", javaType = java.util.List.class, many = @Many(select="getDummyChildren")
        })
        public DummyClass getAllDummies();

        @Select(SelectDummy)
        public DummyClass getDummyChildren()
    }

有人 link 到一个页面,其中描述了如何做到这一点..或任何想法???

好吧我错了..

public 接口 DummyMapper {

最终字符串 SelectAll = "Select * from DummyTable"; 最终字符串 SelectDummy = "Select * from DummyTable where parentid = #{id}";

    @Select(SelectAll)
    @Results({
    @Result(property = "id", column = "id"),
    @Result(property = "dummyList", column = "id", javaType = java.util.List.class, many = @Many(select="getDummyChildren")
    })
    public DummyClass getAllDummies();

    @Select(SelectDummy)
    public List<DummyClass> getDummyChildren(@Param("id") int id);
}

首先你是对的..我应该使用列表作为 getDummyChildren 的 return 值。然后我通过 @Param("id") 和 int id.

扩展了 getDummyChildren

问题已解决。它对我来说很好。