Hibernate注解实现单表递归树形结构

目录:

  1. 概述
  2. 环境
  3. 代码示例
  4. 测试结果

[一]、概述

在系统中,经常会用到无限级递归的树形结构,比如菜单、组织机构管理、多级分类等等,一般是在同一个表中定义父子关系实现这种树形结构,本文主要讲述如何运用hibernate全注解的方式实现这个功能。

[二]、环境

  • hibernate 4.1.2
  • java 1.6
  • mysql 5.1

[三]、代码示例

第一步:创建Entity类,并添加注解实现关联关系

ps: 主要是利用@ManyToOne 和 @OneToMany 配置在同一个Entity类中实现树形递归的结构

TreeNode.java

第二步:创建hibernate默认配置文件:

hibernate.cfg.xml

第三步:创建测试文件:

HibernateAnnoTreeTest.java

第四步:创建日志输出配置文件:

log4j.properties

[四]、测试结果

测试添加方法,输出日志如下:

数据库中查询记录如下:

再运行测试程序中的更新方法,输出日志如下:

数据库中查询记录如下:

本文介绍到此结束@Michael Sun.

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/j2ee/hibernate/hibernate-anno-tree/

发表评论?

2 条评论。

  1. 请教下,PARENT_ID是需要在数据库中另加一个字段么

    • 如果Hibernate 配置的是update 模式,它会自己创建相关字段,如果不是update或者create 那么需要自己把相应的表及字段(包括PARENT_ID这个字段)创建好

回复给 Michael ¬
取消回复


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">