Hibernate--级联删除
来源:互联网 发布:双头螺纹怎么编程 编辑:程序博客网 时间:2024/06/05 11:40
1 一对多,当一的一方被删除时,由于多的一方指向该方,所以所以指向一方这条记录的信息均会被删除,以下是Demo。
实体类与配置–多的一方:
public class Student { private int id; private String name; private int age; private Grade grade;}<class name="Student"> <id name="id"> <generator class="native"></generator> </id> <property name="name"/> <property name="age"/> <!-- cascade 级联:让操作级联到子实体 save-update:保存和更新多的一端数据时,一的一端的数据可以一起保存和更新 none:不级联 delete:删除级联-不能在多的一端使用 all:表示所有操作都级联 --> <many-to-one name="grade" class="Grade" column="grade_id" cascade="save-update" ></many-to-one> </class>
在多的一方配置级联操作删除配置。
实体类与配置–一的一方:
public class Grade { private int id; private String name; private Set<Student> students = new HashSet<Student>(0);}<class name="Grade"> <id name="id"> <generator class="native"></generator> </id> <property name="name"/> <!-- set是 Grade中的集合属性 name属性名称 --> <set name="students" cascade="delete"> <!-- key表示外键 column外键列名--> <key column="grade_id"></key> <!-- one-to-many 一对多 类Grade 中 students 所表示类型 --> <one-to-many class="Student"/> </set> </class>
测试代码:
Session session = null; Transaction tx = null; try{ session = HibernateUtil.getSession(); tx = session.beginTransaction(); Grade grade = (Grade)session.get(Grade.class, 1); session.delete(grade); tx.commit(); }catch (HibernateException e) { if(tx!=null) tx.rollback(); e.printStackTrace(); //throw e; }finally{ HibernateUtil.closeSession(); }
阅读全文
0 0
- 删除级联hibernate级联删除
- Hibernate级联删除
- Hibernate实现级联删除
- Hibernate的级联删除
- Hibernate实现级联删除
- Hibernate 级联删除
- hibernate级联删除问题
- hibernate级联删除
- Hibernate 级联删除
- hibernate级联删除
- Hibernate级联删除
- Hibernate级联删除
- Hibernate级联删除问题
- hibernate注解 级联删除
- hibernate级联删除
- hibernate级联删除
- Hibernate的级联删除
- hibernate 级联修改删除
- 从零开始学java(四)数据类型和类型转换
- 线程安全和可重入函数
- android_studio_shortcat key
- 一种从机通信查询的方式,适用于嵌入式以及上位机的从机通信查询方式
- github ssh(frok)
- Hibernate--级联删除
- WCF是什么
- 搜索——水池数目
- 文本区的DucumentEvent事件
- Cannot find KieModule(jbpm-console错误)
- react-router跳转传值
- oracle sql脚本批量执行
- ZooKeeper原理及其在Hadoop和HBase中的应用
- js 插入和添加节点