hibernate删除的问题

问题描述

比如系统中的一个学员,加入到了培训班中,在删除这个学员的时候,通常情况下,要不要同时删除学员在班级中的对应关系,我现在的处理方法是:在删除学员的时候,提示了一下,"此学员已加入到培训班中,请先删除培训班中的学员"不知道这样做是不是合理系统使用了hibernate,学员和班级是多对多的关系,且让培训班作为主控方请大家指教,谢谢!

解决方案

解决方案二:
先删培训班信息再删学员信息放在一个事物里处理就可以了
解决方案三:
提示的时候可以在询问下是否确定删除删除则删除学员所有信息接着删除的时候就是先删除培训班里面的信息在删除此学员
解决方案四:
该回复于2011-01-29 16:42:21被版主删除
解决方案五:
如果信息关联性不是很强的话,可以使用级联删除,直接删除掉了,像你这样的提示,其实也是可以的
解决方案六:
如果项目比较复杂的话,建议不删除,可以给学员一个标识值,正常情况下是一个值,非正常情况(如要删除)可以将这个值改变一下。如果直接删除的话可能会造成一些后期维护的麻烦---------------个人看法
解决方案七:
不重要的场合下级联删除得了,重要的场合还是避免物理删除,加个字段做删除标识
解决方案八:
我觉得给提示信息容易做得更加产品化,但现在问题是需要批量删除,如果有多个学员加入到培训班中了,我想最好能作出以下提示信息"学员张三,李四,王五已加入到网络第三期培训班中,请先删除培训班中的对应学员"但是学员名称在异常信息中找不到(加入培训班的学员不能在外部任意删除,我是通过外键约束来进行限制的),异常中只能找到下列消息:SQLError:1451,SQLState:23000Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfails(`cms/t_class_student`,CONSTRAINT`t_class_student_ibfk_1`FOREIGNKEY(`fk_student_id`)REFERENCES`t_student`(`ID`))Couldnotsynchronizedatabasestatewithsession我又不想通过查询整个表去得到学员姓名,我觉得太浪费性能,请教下大家有没有好的办法,谢谢哇。。
解决方案九:
不要以为级联删除很牛X。。。那是很危险的事情
解决方案十:
jiaqiangm兄,有什么危险呢?
解决方案十一:
引用7楼gimm667的回复:

我觉得给提示信息容易做得更加产品化,但现在问题是需要批量删除,如果有多个学员加入到培训班中了,我想最好能作出以下提示信息"学员张三,李四,王五已加入到网络第三期培训班中,请先删除培训班中的对应学员"但是学员名称在异常信息中找不到(加入培训班的学员不能在外部任意删除,我是通过外键约束来进行限制的),异常中只能找到下列消息:SQLError:1451,SQLState:23000……

你可以加个字符串遍历删除删除时不是会抛出错误吗?你就获取这个学院的名称存入字符串展示的时候在进行输出
解决方案十二:
如果只删除学员会报错吧?先删除培训再删除学员,把他们放在一个事务里面处理比较好
解决方案十三:
先删掉班级表中对应学员的信息然后再删除学员表中的学员信息这样的效率要好一点
解决方案十四:
这个好像跟业务有关
解决方案十五:
如果不需要有记录的话,直接配置hibernate的级联关系,使用级联删除。如果数据重要,就加入一个状态值,用来表示存在,删除
解决方案:
很简单,看业务需要
解决方案:
引用楼主gimm667的回复:

系统使用了hibernate,学员和班级是多对多的关系,且让培训班作为主控方

学员和班级应该是多对一的关系,学员和培训班应该是多对多的关系,
解决方案:
还是用事物不要用级联那很危险
解决方案:
具体怎么删要根据具体的需求!

时间: 2024-08-08 16:16:44

hibernate删除的问题的相关文章

hibernate删除id还是对象的问题

问题描述 hibernate删除id还是对象的问题 hibernate4要执行删除操作的时候,是用hql语句,根据id删除的方法,还是直接删除对象呢,哪一种效率高. 解决方案 hibernate之删除对象 解决方案二: 可以输出时间看看那个快 解决方案三: 快也快不了多少吧,都差不多

无法通过spring+Hibernate删除和更新bean,但是可以插入,有谁遇到过这种情况吗?

问题描述 无法通过spring+Hibernate删除和更新bean,但是可以插入,有谁遇到过这种情况吗? 控制台没有报错 控制台没有报错 控制台没有报错 控制台没有报错 控制台没有报错 解决方案 修改了Spring配置文件的事物管理bean,然后就好了 解决方案二: 看下hibernate的配置对不对,什么报错

Hibernate删除主从表的问题

问题描述 我现在用SSH框架做个小项目.现在遇到这样的问题,现在有五张表,一张人员表(users),一张文件表(files),一张文件操作类型表(fileOperations),一张文件夹表(folder)一张中间表(user_file_operation),中间表有三个字段(userId,fileId,operationId),这三个字段都为为外键,userId,fileId,operationId分别为三张表的主键.因为是多表关联,在pojo中所以我引申了一个类,类名为BarSnafu,这个

关于hibernate删除记录的问题

问题描述 我要删除的表记录在整个系统中有很多外键,我在service删除org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch updateCaused by: java.sql.BatchUpdateException: ORA-02292: 违反完整约束条件 (DCMIS.FK_DZ_GZHB_CYXX_ID_DZ_CYXX) - 已找到子记录但是在service里面又无法捕获这个异

关于hibernate删除数据时出现的异常问题!

问题描述 各位大侠.小弟最近做个应用,我在页面进行数据删除的时候出了一些问题,希望各位帮忙看看! 具体情况:我的应用是基于struts2+spring2.5+hibernate3.2.我的数据库表是通过hibernate生成的,在映射文件上做了相关的关联映射.一个目录表(category),一个文章表(article).一个目录对应多个文章.我在页面上测试删除目录的时候发现我删除那些还未发布文章的目录可以删除成功,删除已经有文章的目录不成功(意料之内).奇怪的地方出来了,当我先删除有文章的目录不

关于hibernate删除记录的疑问

问题描述 我程序里是这样删除的privateT_coursecourse=newT_course();course.setId(Integer.parseInt(request.getParameter("record_id")));courseDAO.delete(course);publicvoiddelete(To){getSession().delete(o);}生成的sql语句是这样deletefromT_coursewherel_id=?程序里并没有写session.flu

hibernate 删除 外键约束

问题描述 写了两个类: Subject(一端) Comment(多端)其对应hbm xml(截取)为:subject.hbm.xml: <set name="comments" lazy="true" inverse="true" cascade="all" sort="unsorted" > <cache usage="read-write" /> <ke

用hibernate查询一段时间的记录

这是在一个群里讨论的问题. 方法很多:如果说数据库中数据的存储是用date类型的话,改怎么做,如果说做数据迁移的话又该怎么做? 最终的讨论方案在用字符串存储格式上比较好,毕竟各个数据库对时间的存储存在差异. 一下是我用hibernate中的HQL,和QBC两种检索方式对一段时间内的数据进行检索. 1 package com.duduli.li; 2 3 import java.util.Date; 4 import java.util.Iterator; 5 import java.util.L

gethibernatetemplate-getHibernateTemplate().delete()删除记录是报错

问题描述 getHibernateTemplate().delete()删除记录是报错 SpingMVC+Hibernate删除某一条数据库不存在的记录的时候,就会报错误: 13:55:38.206 [http-8080-2] ERROR org.hibernate.jdbc.AbstractBatcher - Exception executing batch: org.hibernate.StaleStateException: Batch update returned unexpecte