在实际程序开发中,经常需要持久化临时对象,比如新建一个学生,将加入到一个存在的班级中(或者新建的一个班级),在这里不妨把引起级联操作的对象称为根对象(本文中所指的就是team对象) ,而根对象可能出于transient,persistence,detach三态,下面分别讨论
首先,建立数据库表:
CREATE TABLE certificate (
id varchar(100) NOT NULL default '',
description varchar(100) default '',
PRIMARY KEY (id)
);
CREATE TABLE student (
team_id varchar(100) default '',
id varchar(100) NOT NULL default '',
name varchar(20) default '',
cardId varchar(20) NOT NULL default '',
age int(11) default '0',
PRIMARY KEY (id)
);
CREATE TABLE team (
id varchar(100) NOT NULL default '',
teamName varchar(100) default '',
PRIMARY KEY (id)
);
INSERT INTO certificate VALUES ('1','110108');
INSERT INTO certificate VALUES ('2','110109');
INSERT INTO student VALUES ('1','1','tomclus','2006m',33);
INSERT INTO student VALUES ('2','2','tom','2007m',22);
INSERT INTO team VALUES ('1','team1');
持久化对象Pojo
package Cascade.Relation;
public class Certificate ...{
private String id;
private String description;
private Student stu;
public Student getStu() ...{
return stu;
}
public void setStu(Student stu) ...{
this.stu = stu;
}
public String getDescription() ...{
return description;
}
public void setDescription(String description) ...{
this.description = description;
}
public String getId() ...{
return id;
}
public void setId(String id) ...{
this.id = id;
}
}
package Cascade.Relation;
public class Student ...{
private String id; //标识id
private String cardId; //学号
private String name; //学生姓名
private int age; //岁数
private Certificate cer;//身分证
private Team team;//班级
public int getAge() ...{
return age;
}
public String getName() ...{
return name;
}
public String getCardId() ...{
return cardId;
}
public void setId(String id) ...{
this.id = id;
}
public void setAge(int age) ...{
this.age = age;
}
public void setName(String stuName) ...{
this.name = stuName;
}
public void setCardId(String cardId) ...{
this.cardId = cardId;
}
public String getId() ...{
return id;
}
public Student() ...{ //无参的构造函数
}
public Certificate getCer() ...{
return cer;
}
public void setCer(Certificate pass) ...{
this.cer = pass;
}
public Team getTeam() ...{
return team;
}
public void setTeam(Team team) ...{
this.team = team;
}
}
package Cascade.Relation;
import java.util.HashSet;
import java.util.Set;
public class Team ...{
private String id;
private Set students=new HashSet();
private String teamName;
private Set tests;
public Set getTests() ...{
return tests;
}
public void setTests(Set tests) ...{
this.tests = tests;
}
分享到:
相关推荐
当我们对一个实体对象进行操作时,可以设置级联属性,让这些操作自动传播到与之相关联的其他对象,从而减少代码的冗余和复杂性。接下来,我们将详细探讨Hibernate的级联操作,包括增、删、改这三种主要操作。 1. ...
在Java持久化框架Hibernate中,级联操作是处理对象关系映射(ORM)时非常重要的一个特性。级联操作允许我们在对一个实体进行操作时,自动地影响与之相关的其他实体,无需显式地处理这些关联。在这个" Hibernate级联...
“Hibernate 级联查询”是指在使用Hibernate这个Java持久化框架时,如何处理对象之间的关联查询。Hibernate提供了级联操作来简化数据的保存、更新和删除等操作,使得开发者无需手动编写复杂的SQL语句,就能实现关联...
级联操作定义了当主对象被持久化(保存、更新、删除等)时,与之关联的对象应该如何被处理。在 Hibernate 中,`cascade` 属性可以接受多个参数,如: 1. `all`:在所有操作中都级联关联操作,包括保存、更新、删除...
Hibernate的核心概念之一就是持久化对象的生命周期,这涉及到对象在数据库中的状态及其与Session的关系。 首先,我们来看一下Hibernate中持久化对象的三种基本状态: 1. **瞬时对象(Transient Objects)**: - ...
通过阅读《精通Hibernate:Java对象持久化详解》,开发者可以深入了解Hibernate的工作原理,学习如何有效地使用它来实现对象持久化,从而提高开发效率,降低维护成本。这本书对于Java Web开发者,尤其是初次接触...
总结来说,Hibernate的Many-to-Many级联操作简化了数据库关系的维护,使得开发者可以更专注于业务逻辑,而不是繁琐的持久化细节。合理使用级联操作,能有效提高代码的效率和可维护性。但同时要注意,不当的级联操作...
在Hibernate中,实体类代表数据库表,实体类的实例对应表中的记录,属性对应字段,这样就将复杂的SQL操作转化为简单的对象操作。 其次,书中详细讲解了Hibernate的配置。这包括了Hibernate的XML配置文件(hibernate...
在实际开发过程中,为了简化数据持久化的处理逻辑,Hibernate引入了级联操作和控制权反转两个概念。 ### 一、级联操作(Cascade) #### 1.1 级联操作简介 级联操作是Hibernate提供的一种用于简化关联对象管理的...
在Java的持久化框架Hibernate中,级联操作(Cascade)和反转(Inverse)是两个重要的概念,它们主要用于管理对象关系模型中的关联关系。在一对多的关系中,这些特性可以帮助简化数据操作,提高代码的可读性和维护性...
组件类没有独立的OID(对象标识符),不会在数据库中单独创建表,且不能单独持久化,但能与其他持久化类关联。 Hibernate的缓存机制是提高系统性能的关键。一级缓存是基于Session的,它保存了自Session打开以来所有...
### Hibernate基础之关联映射与级联操作 ...以上是关于Hibernate中关联映射和级联操作的基础知识概述,掌握了这些内容后,开发者能够在实际项目中更加灵活高效地使用Hibernate进行数据持久化操作。
8.5.3 持久化临时对象 8.5.4 更新游离对象 8.5.5 遍历对象图 8.6 小结 8.7 思考题 第9章 通过Hibernate操纵对象(下) 9.1 与触发器协同工作 9.2 利用拦截器(Interceptor)生成审计日志 9.3 ...
【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...
在Java持久化框架Hibernate中,一对多(One-to-Many)、多对一(Many-to-One)、级联(Cascading)、加载(Loading)和反转(Inversing)是关系映射的重要概念,它们对于理解如何在数据库和对象之间有效地管理关联至...
在Java的持久化框架Hibernate中,级联操作是一种非常实用的功能,它允许我们在对一个对象进行操作时,自动处理与其关联的对象。级联删除(Cascade Delete)就是其中之一,当删除一个对象时,会根据配置自动删除与之...
《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...
《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...
通过这些章节的学习,读者不仅可以理解Hibernate的工作原理,还能熟练运用它来实现Java对象的持久化,从而提升数据库操作的效率和便捷性。每章的源码实例将帮助读者更好地理解和实践这些理论知识。
在开始之前,建议先学习“hibernate:java持久化对象详解01”,以确保对基础概念有清晰的理解。 首先,我们来理解一下什么是持久化对象。在Java中,持久化对象(Persistent Object)是指其状态可以在数据库中长期...