MyBatis Parent Child关系

时间:2016-04-08 12:36:30

标签: mybatis

这是我的班级..我保持简单。

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

   getter / setter...
}

假设我有一个表(DummyTable),其中包含2列id,parentid,并且我有多行,例如:

ID,PARENTID
1,1(条目是父母)
2,1(条目具有id为1的父)
3,2(该条目具有id为2的父级)
4,2 ...
5,3 ..
6,6(参赛作品为父母)
7,6(该条目的父母为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()
    }

某人有一个指向页面的链接,其中描述了如何执行此操作..或任何想法???

1 个答案:

答案 0 :(得分:0)

好的,我犯了一个错误..

public interface DummyMapper {

final String SelectAll =&#34;从DummyTable&#34;中选择*;  final String SelectDummy =&#34;从DummyTable中选择*,其中parentid =#{id}&#34 ;;

    @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);
}

首先你是对的..我应该使用List作为getDummyChildren的返回值。然后我通过@Param(&#34; id&#34;)和int id扩展了getDummyChildren。

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