如何在hibernate一对多关系中删除one方,让many一方中引用one的一方置空?
下面是adminType.xml<?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.hubu.model.AdminType" table="tb_admintype">
<id name="adminTypeId" type="java.lang.Integer">
<column name="adminTypeID" />
<generator class="assigned" />
</id>
<property name="adminTypeName" type="java.lang.String">
<column name="adminTypeName" length="50" />
</property>
<property name="adminTypeDesc" type="java.lang.String">
<column name="adminTypeDesc" length="200" />
</property>
<set name="admins" inverse="true" lazy="true" cascade="save-update">
<key>
<column name="adminTypeID" />
</key>
<one-to-many class="com.hubu.model.Admin" />
</set>
</class>
</hibernate-mapping>
admin.xml<?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.hubu.model.Admin" table="tb_admin">
<id name="adminId" type="java.lang.String">
<column name="adminID" length="20" />
<generator class="assigned" />
</id>
<many-to-one name="adminType" class="com.hubu.model.AdminType" fetch="select" cascade="all">
<column name="adminTypeID" />
</many-to-one>
<property name="adminName" type="java.lang.String">
<column name="adminName" length="20" not-null="true" />
</property>
<property name="adminPhone" type="java.lang.String">
<column name="adminPhone" length="20" />
</property>
<property name="adminTel" type="java.lang.String">
<column name="adminTel" length="20" />
</property>
<property name="adminEmail" type="java.lang.String">
<column name="adminEmail" length="30" />
</property>
<property name="adminGender" type="java.lang.Integer">
<column name="adminGender" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="20" />
</property>
</class>
</hibernate-mapping>
下面是adminType.xml<?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.hubu.model.AdminType" table="tb_admintype">
<id name="adminTypeId" type="java.lang.Integer">
<column name="adminTypeID" />
<generator class="assigned" />
</id>
<property name="adminTypeName" type="java.lang.String">
<column name="adminTypeName" length="50" />
</property>
<property name="adminTypeDesc" type="java.lang.String">
<column name="adminTypeDesc" length="200" />
</property>
<set name="admins" inverse="true" lazy="true" cascade="save-update">
<key>
<column name="adminTypeID" />
</key>
<one-to-many class="com.hubu.model.Admin" />
</set>
</class>
</hibernate-mapping>
admin.xml<?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.hubu.model.Admin" table="tb_admin">
<id name="adminId" type="java.lang.String">
<column name="adminID" length="20" />
<generator class="assigned" />
</id>
<many-to-one name="adminType" class="com.hubu.model.AdminType" fetch="select" cascade="all">
<column name="adminTypeID" />
</many-to-one>
<property name="adminName" type="java.lang.String">
<column name="adminName" length="20" not-null="true" />
</property>
<property name="adminPhone" type="java.lang.String">
<column name="adminPhone" length="20" />
</property>
<property name="adminTel" type="java.lang.String">
<column name="adminTel" length="20" />
</property>
<property name="adminEmail" type="java.lang.String">
<column name="adminEmail" length="30" />
</property>
<property name="adminGender" type="java.lang.Integer">
<column name="adminGender" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="20" />
</property>
</class>
</hibernate-mapping>
然后你再session.delete(adminType)
然后你再session.delete(adminType)