`
donggz_renji
  • 浏览: 1539 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

如何实现Hibernate树行结构的删除

阅读更多
在同一张表存在所属关系的树形结构,如何实现删除某个节点同时把该节点下的所有子节点一起删除
下边是部分结构说明
CstBomMasterTest.hbm.xml
<hibernate-mapping>
<class name="test.CstBomMasterTest"
table="CST_BOM_MASTER_TEST" schema="CAPMS">
<id name="id" type="long" column="ID">
<generator class="increment" />
</id>
<property name="code" type="string">
<column name="CODE" length="20" />
</property>
<property name="name" type="string">
<column name="NAME" length="20" />
</property>
<!--
<property name="parentCode" type="string">
<column name="PARENT_CODE" length="20" />
</property>-->
<set name="childCstBomMasterTests" cascade="all" inverse="true">
<key column="parent_code" />
<one-to-many class="test.CstBomMasterTest" />
</set>

<many-to-one  name="parentCstBomMasterTest" column="parent_code"
class="test.CstBomMasterTest" cascade="all" />
</class>
</hibernate-mapping>
java类文件
public class CstBomMasterTest implements java.io.Serializable {

private Long id;

private String code;

private String name;

private CstBomMasterTest parentCstBomMasterTest;

private Set childCstBomMasterTests = new HashSet();

public CstBomMasterTest(String code, String name,
CstBomMasterTest parentCstBomMasterTest, Set childCstBomMasterTests) {
this.code = code;
this.name = name;
this.parentCstBomMasterTest = parentCstBomMasterTest;
this.childCstBomMasterTests = childCstBomMasterTests;
}

public CstBomMasterTest() {
}

public CstBomMasterTest(Set childCstBomMasterTests) {
this.childCstBomMasterTests = childCstBomMasterTests;
}

public Long getId() {
return this.id;
}

public void setId(Long id) {
this.id = id;
}

public String getCode() {
return this.code;
}

public void setCode(String code) {
this.code = code;
}

public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}

public CstBomMasterTest getParentCstBomMasterTest() {
return this.parentCstBomMasterTest;
}

public void setParentCstBomMasterTest(
CstBomMasterTest parentCstBomMasterTest) {
this.parentCstBomMasterTest = parentCstBomMasterTest;
}

public Set getChildCstBomMasterTests() {
return this.childCstBomMasterTests;
}

public void setChildCstBomMasterTests(Set childCstBomMasterTests) {
this.childCstBomMasterTests = childCstBomMasterTests;
}

public void addChildCstBomMasterTest(CstBomMasterTest cstBomMasterTest) {
if (cstBomMasterTest == null)
throw new IllegalArgumentException(
"Can't add a null cstBomMasterTest as child.");
// Remove from old parent category
if (cstBomMasterTest.getParentCstBomMasterTest() != null)
cstBomMasterTest.getParentCstBomMasterTest()
.getChildCstBomMasterTests().remove(cstBomMasterTest);
// Set parent in child
cstBomMasterTest.setParentCstBomMasterTest(this);
// Set child in parent
this.getChildCstBomMasterTests().add(cstBomMasterTest);
}

public String toString() {
return new ToStringBuilder(this).append("id", getId()).toString();
}
}
分享到:
评论

相关推荐

    教你如何用java开发树型结构

    7. **10_树型结构组件**:这个文件名可能指的是一个示例或教程,包含了一个具体的树型结构组件的实现。在实际操作中,你可以解压这个文件,查看源代码,学习如何在Java项目中集成和使用这个组件。 通过学习以上知识...

    Hibernate映射树形结构

    在给定的压缩包`hibernate_2300_tree`中,可能包含了示例代码、配置文件或者教程资源,用于展示如何在实际项目中实现Hibernate对树形结构的映射。通过学习这些材料,开发者可以更深入地理解Hibernate映射树形结构的...

    Hibernate 单表实现树结构

    标题中的“Hibernate 单表实现树结构”是指在Java开发中,使用Hibernate框架来处理具有层级关系的数据,例如组织架构、目录树等。在数据库中,这种数据通常使用单表自连接的方式存储,即一张表中某个字段指向自身,...

    志远信息管理系统 V2.0.rar

    1,栏目无限级分类,形成树型结构,可以随意增加,修改,移动,删除栏目,移动或删除栏目的同时系统自动移动或删除其对应子栏目和信息。 2,系统支持国际化,采用utf-8编码,资源文件里可以设置多国语言,形成多国语言...

    java信息管理系统(源码)

    1,栏目无限级分类,形成树型结构,可以随意增加,修改,移动,删除栏目,移动或删除栏目的同时系统自动移动或删除其对应子栏目和信息。 2,系统支持国际化,采用UTF-8编码,资源文件里可以设置多国语言,形成多国语言...

    DOM4J 解析XML 添加 删除 修改

    DOM是一种树型结构,将XML文档解析为一系列的节点,包括元素(Element)、属性(Attribute)、文本(Text)等。DOM4J提供了一种灵活且高性能的方式来处理这些节点。 1. 添加元素: 在DOM4J中,可以使用`Element`类...

    zk的增删改查的例子

    Zookeeper提供了一种树型的数据结构,用于存储和管理数据,同时也提供了诸如选举、同步、配置管理等服务。 【压缩包子文件的文件名称列表】"ZkDemo"可能是一个包含Zookeeper操作示例代码的项目或库。通常,这样的...

    dom4j-1.6.1jar包

    DOM是一种树型结构,可以将整个XML文档加载到内存中,方便进行查询和修改。 2. **简单可扩展标记语言 (SAX)**:对于大型XML文档,DOM解析可能会消耗大量内存。因此,dom4j也支持SAX解析,它通过事件回调机制处理XML...

    java源码包---java 源码 大量 实例

    1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实世界模型  基于EJB的真实世界...

    java源码包2

    1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实世界模型  基于EJB的真实...

    JAVA上百实例源码以及开源项目源代码

    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...

    java源码包3

    1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实世界模型  基于EJB的真实...

    java源码包4

    1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实世界模型  基于EJB的真实...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...

Global site tag (gtag.js) - Google Analytics