1

如何将表映射id | parent_id | name到我的 pojo 类:

public class Node {
  private Integer id;
  private Integer parentId;
  private String name;
  private List<Node> children;
  //getters and setters
}

我想获取填充子列表的根节点列表(parent_id=null)。树的深度没有限制。我正在考虑类似的事情:

<resultMap id="nodeResult" type="Node">
  <id property="id" column="id"/>
  <result property="parentId" column="parent_id"/>
  <result property="name" column="name"/>
  <collection property="children" resultMap="nodeResult"/>
</resultMap>
<select id="selectNode" resultMap="nodeResult">
  SELECT * FROM NODE
</select>

我不知道在哪里限制子列表:id=parentId。我不想使用嵌套选择

4

1 回答 1

0

没有办法让任意深度的树自动填充到 ResultMap 中。

数据库特定的解决方案是一种选择吗?例如,使用 PostgreSQL,您可以使用公用表表达式将数据选择到可能适用于映射到树的 ResultSet 中。

否则,您应该只更改 ResultMap 中的集合定义以指向查询以选择子项,这可以重用相同的结果图来获得递归行为

于 2012-09-07T17:22:07.713 回答