问题描述:有这样的一个表 ProductCatalog
id name parent
1 aaa
2 bbb
3 ccc 1
4 ddd 2
5 eee 3
6 fff 3
7 ggg 2
要根据id获取这个父节点下的所有子结点,数据量不是很大,不考虑用复杂的mysql语句(不知道那位大侠能用mysql语句实现,如果实现了告诉我一声哦)和存储过程(mysql也不支持存储过程),那就只好多写两个java方法了。复杂冗余的东西我就不多写了,主要就写获取树状结构数据的两个方法。
/**
* 根据parentid得到这个父节点下的一级子结点。
*/
@SuppressWarnings("unchecked")
public List getChildrenProductCatalogById(Long parentid) {
if(parentid!=null && !parentid.equals(""))
{
String jpql="select p from ProductCatalog p where p.parent=?";
Query q = this.entityManager.createQuery(jpql);
q.setParameter(1, parentid);
return q.getResultList();
}
else
{
String jpql = "select p from ProductCatalog p where p.parent=null or p.parent=''";
Query q = this.entityManager.createQuery(jpql);
return q.getResultList();
}
}
/**根据id得到这个父节点下的所有子结点
* @param id
* @return
*/
//先申明一个List类型的变量productCatalogs
public List<ProductCatalog> getAllChildrenProductCatalogById(long id) {
List<ProductCatalog> childrenProductCatalog = getChildrenProductCatalogById(id);
for (int i = 0; i < childrenProductCatalog.size(); i++) {
productCatalogs.add(childrenProductCatalog.get(i));
List<ProductCatalog> childrenProductCatalog1 = getChildrenProductCatalogById(childrenProductCatalog.get(i).getId());
//如果子结点下还有子结点的话就自己调用自己
if (childrenProductCatalog1.size() > 0) {
getAllChildrenProductCatalogById(childrenProductCatalog.get(i).getId());
}
}
return productCatalogs;
}
分享到:
相关推荐
java读取json格式3层树结构数据,目前代码是能读到树的3层,可以继续在代码里面添加读取层数。
数据结构为数组中包含对象–树形结构,用Vue组件的写法实现以下的效果: 树形列表,缩进显示层级,第5级数据加底色,数据样式显色,点击展开折叠数据。本文为用Vue实现方式,另有一篇为用knockout.js的实现方法。 ...
Java实现的,将树形层级结构的数据转换成表格,通过打点的方式向表格中插入数据,支持行头表格、列头表格、交叉表格三种形式
程序将使用Ajax技术实现动态获取数据的树状菜单。当展开菜单时,自动向服务器发送请求,查询该菜单下的子菜单,并在客户端显示子菜单,而无需刷新整个页面。 源码结构说明 1.TreeWiewDemo文件夹下为源文件 2....
js+asp实现的树形无限递归结构,点击文本框,弹出层调用树形结构页面,点击节点的值后文本框可以获取到值, 在ie6.0下可以运行 但是在ie8.0下无法获取值
此方法可快速循环遍历多级嵌套或树状json结构,根据传入的参数获得对应的父子节点的属性值。
最近做了一个类似用js实现思维导图的功能,作为思维导图,一定会有树状结构的数据产生,在操作里面的节点时会经常需要查找节点 的父节点及父节点。 对于未知层级的树状数据,用for循环是无法实现的,因为不知道要...
树形结构数据库设计,和java获取json到前台显示。
提供大量现成的解决方法,包括汇总和聚合数据、多表数据查询、生成和获取数据、通用查询模式、日期和时间值的处理、字符串、处理数字、事务处理、数据字典、清理数据、常见报表问题、树状结构数据、处理XML数据、...
目录 第一章 HDF介绍 1.1. 本章概况 1.2. 什么是HDF 1.3. 为什么创建HDF 1.4. HDF的6个基本数据结构 ...9.4 显示HDF对象的树状结构 9.5 显示文件和数据对象的注解 9.6 显示Vdatas 9.7 显示光栅图像 9.8 显示科学数据集
在.NET中使用XmlDocument加载一个XML文档后,会形成一个以XmlDocument为根节点的XML对象树状结构,面对这个XML树结构,获取其中的数据方法很自然的就是使用XPath技术了。XPath技术就是在XML树状结构中,以某个节点...
一个Web组件,以树状视图可视化JSON数据 安装 npm i @alenaksu/json-viewer 然后将包导入到您的项目中。 import '@alenaksu/json-viewer' ; 用法 < json> 属性 data - JSON对象的字符串表示来负载 特性 data -...
sql 查询 所有子节点 方法已经调试通过(sql-server 2005)
如何在tree图中获取每个节点相对于canvas的位置,文件里面可以直接参考21579行,getMyPosition方法,里面的返回值中有你需要的,直接调用echart实例的getMyPosition方法即可。如myChart.getMyPosition({finder:{...
它通过snmpget来获取数据,...它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。
此java类实现了对数据表的分类递归树的实现,为本人倾力之作,后期,会发布js版,敬请期待!
资源主要是结合博客文章:http://blog.csdn.net/eastmount/article/details/21241313主要讲述使用C# winForm实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘文件树状目录,并点击结点文件夹能在...
List list2 = new ArrayList(); public List getAll(String i,List<Student> list){ Iterator iter = list.iterator(); while(iter.hasNext()){ Student student = (Student)iter.next();...
作者:Mr_OOO,来自原文地址 目录结构 小程序的基本目录结构如图(1)所示: (此图片来源于网络,如有侵权,请联系...//获取应用实例 var app = getApp() Page({ data: { motto: 'Hello World wechat', userInfo: {}
文档以二进制数据的形式存储在树形结构中,从而可以快速访问子元素 所有JSON值类型的类型化原子操作 快速开始 ,例如: 文献资料 阅读的文档 当前的局限性和已知问题 搜索对象键为O(N) 删除项目后不会按比例缩小...