`

hibernate all-delete-orphan

阅读更多
父表(1)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="com.gdcn.gpms.pms.GDTEC.scgl.model.ForeignAccountsApprove" table="gdtec_foreignAccountsApprove">
         <id name="resourceid" type="java.lang.String">
            <column name="resourceid" length="32" />
            <generator class="uuid.hex" />
        </id>
        <set name="foreignAccountsApproveChildSet" lazy="true" inverse="true" cascade="all-delete-orphan" order-by="serialNumber">
        	<key>
        		<column name="relationId"></column>
        	</key>
        	<one-to-many class="com.gdcn.gpms.pms.GDTEC.scgl.model.ForeignAccountsApproveChild"/>
        </set> 
    </class>
</hibernate-mapping>


子表(N)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.gdcn.gpms.pms.GDTEC.scgl.model.ForeignAccountsApproveChild" table="gdtec_foreignAccountsApproveChild">
        <id name="resourceid" type="java.lang.String">
            <column name="resourceid" length="32" />
            <generator class="uuid.hex" />
        </id>
        <property name="subjectRemark" /> 
        <many-to-one name="foreignAccountsApprove" class="com.gdcn.gpms.pms.GDTEC.scgl.model.ForeignAccountsApprove"  cascade="save-update" insert="false" update="false">
        	<column name="relationId"></column>
        </many-to-one>
 
    </class>
</hibernate-mapping>

添加时:
service_ForeignAccountsApprove.saveEntity(foreignAccountsApprove);
this.dd( foreignAccountsApprove, request) ;
service_ForeignAccountsApprove.updateEntity(foreignAccountsApprove); 

修改时:

service_ForeignAccountsApproveChild.removeForeignAccountsApproveChildByParentId(foreignAccountsApprove.getResourceid());
service_ForeignAccountsApprove.updateEntity(foreignAccountsApprove);
this.dd( foreignAccountsApprove, request) ;
service_ForeignAccountsApprove.updateEntity(foreignAccountsApprove); 

调用地公共方法:
private void dd(ForeignAccountsApprove fg, HttpServletRequest request) {

	Set<ForeignAccountsApproveChild> childForegin = fg.getForeignAccountsApproveChildSet();
	childForegin.clear();

	String[] subjectRemark = request.getParameterValues("subjectRemark"); //备注
	for (int x = 0; x < subjectRemark .length; x++) {
	ForeignAccountsApproveChild foreignAccountsApproveChild 
	        = new ForeignAccountsApproveChild();
	foreignAccountsApproveChild.setSubjectRemark(StringHelper.doWithNull(subjectRemark[x]));
				
	foreignAccountsApproveChild.setForeignAccountsApprove(fg);
	 	
	childForegin.add(foreignAccountsApproveChild);	
	}  
}
分享到:
评论

相关推荐

    hibernate_配置cascade_及all-delete-orphan.doc

    3. **all-delete-orphan**: 这是最强大的cascade选项之一,它结合了`save-update`和`delete`的特点,并增加了一个额外的功能——当子实体与父实体之间的关联被解除时,会自动删除那些不再属于任何父实体的子实体。...

    Hibernate many-to-many

    常见的级联类型包括:SAVE_UPDATE、PERSIST、MERGE、REMOVE、ALL、ALL_DELETE_ORPHAN等。 在描述中提到了"jar包已经包含在里面了",这意味着这个压缩包可能包含了Hibernate库和其他必要的依赖,比如数据库驱动,以...

    hibernate-3.2.rar

    10. **级联操作**:通过设置`cascade`属性,可以在操作一个实体时自动处理其关联实体,如`save-update`, `delete`, `all-delete-orphan`等。 11. **延迟加载(Lazy Loading)**:Hibernate 3.2支持懒加载机制,对于...

    hibernate 学习笔记3

    - `cascade="all-delete-orphan"`:结合`all`和`delete-orphan`特性,当从集合中移除对象时,会立即从数据库中删除该对象。 ### 三、持久化对象状态管理 #### 持久对象状态分类 - **Transient临时态**:仅存在于...

    关于Hibernate级联删除的问题.doc

    级联操作的设置方式有多种,对于一对一和多对一的关系,可以通过`cascade="delete"`或`cascade="all"`,而对于一对多的关系,可以选择`cascade="all-delete-orphan"`或`cascade="all"`。`delete`只在删除父对象时...

    Hibernate cascade (级联).doc

    6. **all-delete-orphan**:这个级联选项结合了 all 和 delete-orphan 的行为。它不仅会在所有情况下执行级联操作,还会在解除关联时删除孤儿对象。 #### 三、示例代码 以下是一个使用级联的例子: ```xml ...

    hibernate配置笔记

    - `&lt;set name="items"cascade="all-delete-orphan" inverse="true"&gt;` 描述了`Order`类中名为`items`的集合属性与数据库表的关系。`cascade="all-delete-orphan"`表示当父对象被删除时,所有孤儿子对象也将被删除。`...

    hibernate cascade 测试demo

    `cascade`有多种类型,包括`save-update`、`merge`、`delete`、`all`、`all-delete-orphan`等,每种类型代表不同的操作传播策略。 1. `save-update`:当你保存或更新父实体时,也会同时保存或更新所有关联的子实体...

    hibernate之一对多配置demo

    这里`cascade="all-delete-orphan"`表示级联所有操作,包括删除孤儿(即当一个班级被删除时,其关联的学生也将被删除)。 四、总结 通过本教程,你可以了解到如何在Hibernate中配置和操作一对多关系,理解XML映射...

    hibernate3学习总结

    - 级联操作(Cascade):控制关联对象的保存、更新、删除行为,如 none、save-update、delete 和 all-delete-orphan。 - `inverse` 属性:用于双向关联中,控制哪一侧负责维护关系,以避免数据同步问题。 在实际...

    hibernate自身关联一对多实例(树形结构)

    在这个例子中,`&lt;set&gt;`元素表示一个集合关联,`inverse="true"`表示"多方"维护关联关系,`cascade="all-delete-orphan"`表示级联操作,删除父项时会删除所有子项。 在实际操作中,我们可以通过Hibernate的Session...

    Hibernate笔记

    - **cascade="all-delete-orphan"**: 这个属性表示级联操作,当删除父对象时,其子对象也会被删除。 - **多对多映射**: - 描述: 通过一个中间表来维护多个实体之间的关联关系。 - 建表语句示例: ```sql CREATE...

    Lazy loading - eager loading

    &lt;set name="OrderLines" cascade="all-delete-orphan" &gt; &lt;one-to-many class="OrderLine"/&gt; &lt;/hibernate-mapping&gt;Analogous you can implement the mappings for the Customer entity ...

    Hibenate cascade

    例如,如果`Teacher`和`Student`的关系设置了`cascade="all-delete-orphan"`,当一个`Student`从`Teacher`的`items`集合中移除时,Hibernate会在数据库中相应地删除这个`Student`。 **2. Hibernate Inverse** `...

    hibernate开发指南.rar

    了解各种级联类型(save-update、delete、all-delete-orphan等)及其使用场景。 10. **缓存机制**:Hibernate支持一级缓存和二级缓存,理解它们的工作原理,以及如何配置和优化缓存以提升性能。 11. **性能优化**...

    Hibernate一对多单向关联(annotation/xml)

    &lt;set name="orders" inverse="true" cascade="all-delete-orphan"&gt; &lt;one-to-many class="com.example.Order"/&gt; &lt;/hibernate-mapping&gt; ``` 2. **在子类的映射文件中**,使用`&lt;many-to-one&gt;`元素定义外键关联...

    Hibernate1对N案例笔记

    &lt;set name="employees" table="Employee" inverse="true" cascade="all-delete-orphan"&gt; &lt;one-to-many class="com.example.Employee"/&gt; ``` 这样,当删除部门时,所有关联的员工也会被删除。 此外,我们还需要...

    hibernate 课件

    - `cascade="all-delete-orphan"`: 指示Hibernate在删除`User`实体时,也会删除所有与之关联的`Account`实体。 ##### 一对一映射关系示例 **Account和Address之间的一对一映射关系** - **概念**: 一个`Account`...

    Hibernate中cascade和inverse应用

    - `all-delete-orphan`:除了 `all` 操作外,还会删除与父对象失去关联的子对象。 例如,假设有一个 `Course` 类关联着多个 `Student` 类,如果在 `Course` 上设置了 `cascade="save-update"`,那么当保存或更新 `...

Global site tag (gtag.js) - Google Analytics