hibernate hql级连语句删除问题
大分类: 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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="maillShoppingStart.entity.BigCategory"
table="BigCategory" schema="dbo" catalog="MallShoppingDataBase">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="categoryName" type="java.lang.String">
<column name="CategoryName" length="50" />
</property>
<set name="smallCategories" lazy="false" cascade="all" inverse="true">
<key>
<column name="bigCateId" />
</key>
<one-to-many
class="maillShoppingStart.entity.SmallCategory" />
</set>
<set name="goods" lazy="false" cascade="all" inverse="true">
<key>
<column name="cateBid" />
</key>
<one-to-many class="maillShoppingStart.entity.Goods" />
</set>
</class>
</hibernate-mapping>
小分类: 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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="maillShoppingStart.entity.SmallCategory"
table="SmallCategory" schema="dbo" catalog="MallShoppingDataBase">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<many-to-one name="bigCategory"
class="maillShoppingStart.entity.BigCategory" fetch="select"
lazy="false">
<column name="bigCateId" />
</many-to-one>
<property name="categoryName" type="java.lang.String">
<column name="CategoryName" length="50" />
</property>
<set name="goodses" cascade="delete" lazy="false" inverse="true">
<key>
<column name="cateSid" />
</key>
<one-to-many class="maillShoppingStart.entity.Goods" />
</set>
</class>
</hibernate-mapping>
商品: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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="maillShoppingStart.entity.Goods" table="Goods"
schema="dbo" catalog="MallShoppingDataBase" lazy="false">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<many-to-one name="smallCategory"
class="maillShoppingStart.entity.SmallCategory">
<column name="cateSid" />
</many-to-one>
<many-to-one name="bigCategory"
class="maillShoppingStart.entity.BigCategory" lazy="false">
<column name="cateBid" />
</many-to-one>
<many-to-one name="brand"
class="maillShoppingStart.entity.Brand" lazy="false">
<column name="brandId" />
</many-to-one>
<property name="goodsCode" type="java.lang.String">
<column name="goodsCode" length="50" />
</property>
<property name="goodsName" type="java.lang.String">
<column name="goodsName" length="50" />
</property>
<property name="goodsImage" type="java.lang.String">
<column name="goodsImage" length="200" />
</property>
<property name="goodsBigImage" type="java.lang.String">
<column name="goodsBigImage" length="200" />
</property>
<property name="goodsExPrice" type="java.lang.Double">
<column name="goodsExPrice" scale="4" />
</property>
<property name="goodsOldPrice" type="java.lang.Double">
<column name="goodsOldPrice" scale="4" />
</property>
<property name="goosdNowPrice" type="java.lang.Double">
<column name="goosdNowPrice" scale="4" />
</property>
<property name="goodsIntro" type="java.lang.String">
<column name="goodsIntro" />
</property>
<property name="goodsNa" type="java.lang.Integer">
<column name="goodsNa" />
</property>
<property name="goodsHit" type="java.lang.Integer">
<column name="goodsHit" />
</property>
<property name="goodsBuyCount" type="java.lang.Integer">
<column name="goodsBuyCount" />
</property>
<property name="goodsState" type="java.lang.Integer">
<column name="goodsState" />
</property>
<property name="goodsUploadTime" type="java.util.Date">
<column name="goodsUploadTime" length="23" />
</property>
</class>
</hibernate-mapping>
sqlserver 数据库 要从大分类删除 同时删除小分类 和 商品
用hibernate 自动生成的删除方法
public void delete(BigCategory persistentInstance) {
log.debug("deleting BigCategory instance");
try {
getHibernateTemplate().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
org.springframework.dao.DataIntegrityViolationException: could not delete: [maillShoppingStart.entity.BigCategory#5]; nested exception is org.hibernate.exception.ConstraintViolationException: could not delete: [maillShoppingStart.entity.BigCategory#5]
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:621)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:377)
org.springframework.orm.hibernate3.HibernateTemplate.delete(HibernateTemplate.java:784)
org.springframework.orm.hibernate3.HibernateTemplate.delete(HibernateTemplate.java:780)
maillShoppingStart.dao.impl.BigCategoryDaoImpl.delete(BigCategoryDaoImpl.java:57)
maillShoppingStart.biz.impl.BigCategoryBizImpl.delete(BigCategoryBizImpl.java:18)
maillShoppingStart.web.BigCategoryAction.baseDelete(BigCategoryAction.java:57)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)