NutzCN Logo
问答 一对多多级映射如何插入和读取孙子级的数据?
发布于 2803天前 作者 qq_78893c8c 1605 次浏览 复制 上一个帖子 下一个帖子
标签:

java代码:

		TreeNode root = new TreeNode();
		root = Json.fromJsonFile(TreeNode.class, new File("E:/workspace/start/WebContent/Resources/js/tree-data.json"));
		for(TreeNode node:root.getChildren()){
			System.out.println(node.getChildren().size());
		}
		dao.insertWith(root, "children");

json代码

{ 
text: 'root',
id: 'root',
children: [{
    text:'业务流程',
    id:'yw',
    children:[{
        text:'进',
        id:'in',
        leaf:true
    },{
        text:'销',
        id:'out',
        leaf:true
    }]
},{
    text:'报表中心',
    id:'reports',
    children:[{
        text:'报表1',
        id:'report1',
        leaf:true
    },{
        text:'报表2',
        id:'report2',
        leaf:true
    }]
},{
    text:'基础设置',
    id:'basicSetting',
    expanded: true,
    children:[{
        text:'用户',
        id:'user',
        leaf:true
    },{
        text:'客户',
        id:'customer',
        leaf:true
    },{
        text:'供应商',
        id:'supplier',
        leaf:true
    }]
}]
}

类映射如下:

public class TreeNode {
	
	@Id
	private long tid;
	private long pid;
	@Name
	private String id;
	private String text;
	private boolean leaf;
	
		@Many(target=TreeNode.class, field="pid")
	private List<TreeNode> children;
		

只插入了第一级和第二级,第三级或第n级如何插入呢?

4 回复

递归遍历,自行封装实现

来自炫酷的 NutzCN

我以为还有更省事的办法。

@wendal

    List<TreeNode> children = new ArrayList<TreeNode>();
    root = TreeNode.fetch("root", dao);
    for(TreeNode node:root.getChildren()){
       System.out.println(node);
    }
    String str = Json.toJson(root);

    Json.toJson()有要自己封装实现?得到的str只是显示自己和儿子,孙子也是没办法显示的。

toJson会递归遍历的, 前提是孙子对象已经存在.

添加回复
请先登陆
回到顶部