Hibernate中cascade为all-delete-orphan与all的区别
来源:互联网 发布:淘宝买家佣金怎么查 编辑:程序博客网 时间:2024/06/05 04:02
HrStaffBaseInfo与HrStaffSocietyRelation为one to many关系。
若级联关系cascade设置为all,则通过hrStaffBaseInfo.removeHrStaffSocietyRelationDetail(relationId);只是使hrStaffSocietyRelation成为了一个孤儿,并不能将hrStaffSocietyRelation在数据库中对应的数据也被删除,但其他的新增、更新可以。但若级联关系cascade设置为all-delete-orpnan,则可以删除,且新增、更新亦可。
注:
all:所有情况下均进行级联操作。
all-delete-orpnan:当被关联对象失去宿主时,将其级联删除。
removeHrStaffSocietyRelationDetail函数:
/**
* remove a HrStaffSocietyRelation detail by relationId
* @param relationId
*/
public void removeHrStaffSocietyRelationDetail(String relationId) {
for (HrStaffSocietyRelation hrStaffSocietyRelation : getHrStaffSocietyRelations()) {
if (hrStaffSocietyRelation.getRelationId().equals(relationId)) {
getHrStaffSocietyRelations().remove(hrStaffSocietyRelation);
break;
}
}
}
HrStaffBaseInfo的hbm:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<!--
Created by the Middlegen Hibernate plugin 2.2
http://boss.bekk.no/boss/middlegen/
http://www.hibernate.org/
-->
<class
name="jp.co.yamaha_motor.xa01.common.entity.HrStaffBaseInfo"
table="HR_STAFF_BASE_INFO"
lazy="true"
>
<id
name="staffId"
type="java.lang.String"
column="STAFF_ID"
>
<generator class="assigned" />
</id>
<version
name="updateCounter"
type="java.lang.Integer"
column="UPDATE_COUNTER"
/>
<property
name="siteId"
type="java.lang.String"
column="SITE_ID"
not-null="true"
length="4"
/>
<property
name="staffCd"
type="java.lang.String"
column="STAFF_CD"
not-null="true"
length="20"
/>
<property
name="staffNm"
type="java.lang.String"
column="STAFF_NM"
not-null="true"
length="20"
/>
<property
name="englishNm"
type="java.lang.String"
column="ENGLISH_NM"
length="40"
/>
<property
name="staffPic"
type="java.lang.String"
column="STAFF_PIC"
length="2147483647"
/>
<property
name="countryId"
type="java.lang.String"
column="COUNTRY_ID"
length="36"
/>
<property
name="identityNo"
type="java.lang.String"
column="IDENTITY_NO"
length="20"
/>
<property
name="sexId"
type="java.lang.String"
column="SEX_ID"
length="36"
/>
<property
name="birthDate"
type="java.sql.Timestamp"
column="BIRTH_DATE"
length="6"
/>
<property
name="nationalId"
type="java.lang.String"
column="NATIONAL_ID"
length="36"
/>
<property
name="bloodId"
type="java.lang.String"
column="BLOOD_ID"
length="36"
/>
<property
name="nativeProvinceId"
type="java.lang.String"
column="NATIVE_PROVINCE_ID"
length="36"
/>
<property
name="nativeCityId"
type="java.lang.String"
column="NATIVE_CITY_ID"
length="36"
/>
<property
name="residenceProvinceId"
type="java.lang.String"
column="RESIDENCE_PROVINCE_ID"
length="36"
/>
<property
name="residenceCityId"
type="java.lang.String"
column="RESIDENCE_CITY_ID"
length="36"
/>
<property
name="politicalId"
type="java.lang.String"
column="POLITICAL_ID"
length="36"
/>
<property
name="eduLevId"
type="java.lang.String"
column="EDU_LEV_ID"
length="36"
/>
<property
name="majorId"
type="java.lang.String"
column="MAJOR_ID"
length="36"
/>
<property
name="grduateDate"
type="java.sql.Timestamp"
column="GRDUATE_DATE"
length="6"
/>
<property
name="maritalStatusId"
type="java.lang.String"
column="MARITAL_STATUS_ID"
length="36"
/>
<property
name="joinWorkDate"
type="java.sql.Timestamp"
column="JOIN_WORK_DATE"
length="6"
/>
<property
name="outsideworkYear"
type="java.lang.Integer"
column="OUTSIDEWORK_YEAR"
/>
<property
name="wkTimeTypeId"
type="java.lang.String"
column="WKTIME_TYPE_ID"
length="36"
/>
<property
name="staffTypeId"
type="java.lang.String"
column="STAFF_TYPE_ID"
length="36"
/>
<property
name="employTypeId"
type="java.lang.String"
column="EMPLOY_TYPE_ID"
length="36"
/>
<property
name="cooperateTypeId"
type="java.lang.String"
column="COOPERATE_TYPE_ID"
length="36"
/>
<property
name="internStartDate"
type="java.sql.Timestamp"
column="INTERN_START_DATE"
length="6"
/>
<property
name="internEndDate"
type="java.sql.Timestamp"
column="INTERN_END_DATE"
length="6"
/>
<property
name="enterCompanyDate"
type="java.sql.Timestamp"
column="ENTER_COMPANY_DATE"
length="6"
/>
<property
name="trialStartDate"
type="java.sql.Timestamp"
column="TRIAL_START_DATE"
length="6"
/>
<property
name="trialMonth"
type="java.lang.Integer"
column="TRIAL_MONTH"
/>
<property
name="formalDate"
type="java.sql.Timestamp"
column="FORMAL_DATE"
length="6"
/>
<property
name="contractEndDate"
type="java.sql.Timestamp"
column="CONTRACT_END_DATE"
length="6"
/>
<property
name="leaveDate"
type="java.sql.Timestamp"
column="LEAVE_DATE"
length="6"
/>
<property
name="holdpostStartDate"
type="java.sql.Timestamp"
column="HOLDPOST_START_DATE"
length="6"
/>
<property
name="levStartDate"
type="java.sql.Timestamp"
column="LEV_START_DATE"
length="6"
/>
<property
name="mobileNo"
type="java.lang.String"
column="MOBILE_NO"
length="20"
/>
<property
name="fixedTel"
type="java.lang.String"
column="FIXED_TEL"
length="20"
/>
<property
name="staffEmail"
type="java.lang.String"
column="STAFF_EMAIL"
length="40"
/>
<property
name="homeAddr"
type="java.lang.String"
column="HOME_ADDR"
length="500"
/>
<property
name="addrPostal"
type="java.lang.String"
column="ADDR_POSTAL"
length="20"
/>
<property
name="residenceAddr"
type="java.lang.String"
column="RESIDENCE_ADDR"
length="500"
/>
<property
name="residencePostal"
type="java.lang.String"
column="RESIDENCE_POSTAL"
length="20"
/>
<property
name="emergContact"
type="java.lang.String"
column="EMERG_CONTACT"
length="20"
/>
<property
name="relationship"
type="java.lang.String"
column="RELATIONSHIP"
length="10"
/>
<property
name="emergTel"
type="java.lang.String"
column="EMERG_TEL"
length="20"
/>
<property
name="memo"
type="java.lang.String"
column="MEMO"
length="500"
/>
<property
name="createUser"
type="java.lang.String"
column="CREATE_USER"
length="20"
/>
<property
name="createTerminal"
type="java.lang.String"
column="CREATE_TERMINAL"
length="40"
/>
<property
name="createDatetime"
type="java.sql.Timestamp"
column="CREATE_DATETIME"
length="6"
/>
<property
name="updateUser"
type="java.lang.String"
column="UPDATE_USER"
length="20"
/>
<property
name="updateTerminal"
type="java.lang.String"
column="UPDATE_TERMINAL"
length="40"
/>
<property
name="updateDatetime"
type="java.sql.Timestamp"
column="UPDATE_DATETIME"
length="6"
/>
<!-- Associations -->
<set
name="hrStaffSocietyRelations"
lazy="true"
inverse="true"
cascade="all-delete-orphan"
>
<key>
<column name="STAFF_ID" />
</key>
<one-to-many
class="jp.co.yamaha_motor.xa01.common.entity.HrStaffSocietyRelation"
/>
</set>
</class>
</hibernate-mapping>
- Hibernate中cascade为all-delete-orphan与all的区别
- Hibernate中cascade为all-delete-orphan使用情况补充
- hibernate cascade属性 all-delete-orphan
- hibernate cascade属性 all-delete-orphan
- hibernate cascade属性 all-delete-orphan
- Hibernate all-delete-orphan
- 关于hibernate中使用all-delete-orphan的用法
- 晕,hibernate 的 merge和cascade="all-delete-orphan"要慎重合在一起使用
- cascade="all-delete-orphan" 处理
- cascade="all-delete-orphan" 处理
- HIbernate级联删除(hibernate 双向一对多中 主表设置cascade="all-delete-orphan",在save时出现
- hibernate cascade="all-delete-orphan"(所有-删除-孤儿)释疑
- all-delete-orphan
- all-delete-orphan
- all-delete-orphan
- 在进行jpa更新操作中报异常Cascade="All-Delete-Orphan" 处理
- cascade="all-delete-orphan"时容易出现的一个异常
- hibernate----Inverse 和 cascade区别 | cascade="all-delete-orphon" 总结
- 王功权创作演唱《私奔之歌》 称世俗成见才是刽子手
- iPhone发邮件编程
- (转)Eclipse.ini参数简介
- (转)Tomcat默认连接超时时间
- 爬楼梯问题和Fibonacci数
- Hibernate中cascade为all-delete-orphan与all的区别
- java 对象类型Boolean与基本类型boolean的联系、区别
- 軟考之他人見
- form标签后多一行空白的解决方
- Silverlight 4 自定义控件属性设置
- SQL 拼接字符串 列转行
- 数据和逻辑永远都比界面重要
- ubuntu network connection 消失的解决办法
- SQL 纯小数 转字符串