hibernate hql级连语句删除问题

s1351028 2010-11-13 03:28:39
大分类: 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)




...全文
695 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
648728438 2012-11-03
  • 打赏
  • 举报
回复
谢谢 是好东西啊
带饭带饭 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
在你大分类里配置 inverse="true"是有问题的。你想让大分类来维护和小分类之间关系,也就是说大分类为主,小分类为辅。但你确在大分类里配置inverse="true",把这个配置去掉试试,应该问题就好了
[/Quote]
这个赞同
月亮床 2012-11-01
  • 打赏
  • 举报
回复
在你大分类里配置 inverse="true"是有问题的。你想让大分类来维护和小分类之间关系,也就是说大分类为主,小分类为辅。但你确在大分类里配置inverse="true",把这个配置去掉试试,应该问题就好了
___小奋斗 2012-11-01
  • 打赏
  • 举报
回复
全是废话,没有真正的解决方案,如果不删除级联关系,就不能全部删除了吗?
geningaixin 2011-05-09
  • 打赏
  • 举报
回复
对于联级删除来说,首先你需要把相关联的数据关系全清空,要不然是执行不了联级删除的操作。
zhaojie1278 2011-05-09
  • 打赏
  • 举报
回复
级联删除。
s1351028 2010-11-13
  • 打赏
  • 举报
回复
额 我是初学者 删除方法是Hibernate自动生成的
qingwas55 2010-11-13
  • 打赏
  • 举报
回复
如果用hql语句执行删除时是不支持级联删除的
十橙心橙意 2010-11-13
  • 打赏
  • 举报
回复
如果是级联删除的话,删除前将关系清空,也就是将值设成NULL

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧