+ -
当前位置:首页 → 问答吧 → hibernate删除问题

hibernate删除问题

时间:2011-09-26

来源:互联网

我在做数据库删除操作的时候,因为有外键关联,所以操作删除的时候会受到限制。现在问题是:我在删除父表的时候,hibernate查到了有子记录,无法删除。

我现在想实现的是:如果有子记录的话就提示“删除失败!”,如果没子记录的话就提示“成功”!! 这个如何做判断

现在我的程序的写法就一条语句。hibernate.delete(vo).这样直接删除父表的话就会报异常:有子记录。

那我如何判断删除的项有子记录呢、难道要我通过VO去查是否有子记录吗?

作者: gmogle   发布时间: 2011-09-26

作者: gmogle   发布时间: 2011-09-26

你的关联设置有问题。

作者: zl3450341   发布时间: 2011-09-26

你添加下异常处理就好了嘛,就是说你hibernate.delete(vo)这个加上try,catch。如果出错就在catch中返回“删除失败”,如果称过就返回成功了..

作者: bijanen19861113   发布时间: 2011-09-26

引用 3 楼 bijanen19861113 的回复:
你添加下异常处理就好了嘛,就是说你hibernate.delete(vo)这个加上try,catch。如果出错就在catch中返回“删除失败”,如果称过就返回成功了..


我的意思,无法删除的情况肯定是有子记录的,而且肯定会抛异常..所以就按那个逻辑是可以解决的

作者: bijanen19861113   发布时间: 2011-09-26

引用 2 楼 zl3450341 的回复:

你的关联设置有问题。


我就是没有设置级联删除,由于业务原因,这个不能设置级联删除

作者: gmogle   发布时间: 2011-09-26

一般来说你得先删除子表啊,要是想把关联的表删除,你得级联操作才能实现

作者: wuhuipengwhp   发布时间: 2011-09-26

引用 4 楼 bijanen19861113 的回复:

引用 3 楼 bijanen19861113 的回复:
你添加下异常处理就好了嘛,就是说你hibernate.delete(vo)这个加上try,catch。如果出错就在catch中返回“删除失败”,如果称过就返回成功了..


我的意思,无法删除的情况肯定是有子记录的,而且肯定会抛异常..所以就按那个逻辑是可以解决的


我现在是所有的异常都在ACTION里面才捕获的,其他地方都抛出异常。但现在在ACTION里面怎么都捕获不到异常,刚查了一下,好像这属于运行时异常,无法捕获。不知怎么才能处理

作者: gmogle   发布时间: 2011-09-26

引用 6 楼 wuhuipengwhp 的回复:

一般来说你得先删除子表啊,要是想把关联的表删除,你得级联操作才能实现


我现在的业务是有子表的话就不让删除父表,只提示就行。但现在捕获不到异常,老是有异常出现

作者: gmogle   发布时间: 2011-09-26

热门下载

更多