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
问题已解决。它对我来说很好。
这是我的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问题已解决。它对我来说很好。