`
esffor
  • 浏览: 1370800 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate级联操作学习之持久化临时对象

阅读更多

  在实际程序开发中,经常需要持久化临时对象,比如新建一个学生,将加入到一个存在的班级中(或者新建的一个班级),在这里不妨把引起级联操作的对象称为根对象(本文中所指的就是team对象) ,而根对象可能出于transient,persistence,detach三态,下面分别讨论

首先,建立数据库表:

 



CREATE TABLE certificate (
  id 
varchar(100NOT NULL default '',
  description 
varchar(100default '',
  
PRIMARY KEY  (id)
);





CREATE TABLE student (
  team_id 
varchar(100default '',
  id 
varchar(100NOT NULL default '',
  name 
varchar(20default '',
  cardId 
varchar(20NOT NULL default '',
  age 
int(11default '0',
  
PRIMARY KEY  (id)
);






CREATE TABLE team (
  id 
varchar(100NOT NULL default '',
  teamName 
varchar(100default '',
  
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的级联操作(增,删,该)

    当我们对一个实体对象进行操作时,可以设置级联属性,让这些操作自动传播到与之相关联的其他对象,从而减少代码的冗余和复杂性。接下来,我们将详细探讨Hibernate的级联操作,包括增、删、改这三种主要操作。 1. ...

    Hibernate级联操作一对多demo

    在Java持久化框架Hibernate中,级联操作是处理对象关系映射(ORM)时非常重要的一个特性。级联操作允许我们在对一个实体进行操作时,自动地影响与之相关的其他实体,无需显式地处理这些关联。在这个" Hibernate级联...

    hibernate 级联查询

    “Hibernate 级联查询”是指在使用Hibernate这个Java持久化框架时,如何处理对象之间的关联查询。Hibernate提供了级联操作来简化数据的保存、更新和删除等操作,使得开发者无需手动编写复杂的SQL语句,就能实现关联...

    Hibernate级联操作.docx

    级联操作定义了当主对象被持久化(保存、更新、删除等)时,与之关联的对象应该如何被处理。在 Hibernate 中,`cascade` 属性可以接受多个参数,如: 1. `all`:在所有操作中都级联关联操作,包括保存、更新、删除...

    Hibernate持久化对象的生命周期

    Hibernate的核心概念之一就是持久化对象的生命周期,这涉及到对象在数据库中的状态及其与Session的关系。 首先,我们来看一下Hibernate中持久化对象的三种基本状态: 1. **瞬时对象(Transient Objects)**: - ...

    精通Hibernate:Java对象持久化详解.zip

    通过阅读《精通Hibernate:Java对象持久化详解》,开发者可以深入了解Hibernate的工作原理,学习如何有效地使用它来实现对象持久化,从而提高开发效率,降低维护成本。这本书对于Java Web开发者,尤其是初次接触...

    hibernate many-to-many级联保存,级联更新,级联删除

    总结来说,Hibernate的Many-to-Many级联操作简化了数据库关系的维护,使得开发者可以更专注于业务逻辑,而不是繁琐的持久化细节。合理使用级联操作,能有效提高代码的效率和可维护性。但同时要注意,不当的级联操作...

    精通Hibernate:Java对象持久化技术详解.pdf

    在Hibernate中,实体类代表数据库表,实体类的实例对应表中的记录,属性对应字段,这样就将复杂的SQL操作转化为简单的对象操作。 其次,书中详细讲解了Hibernate的配置。这包括了Hibernate的XML配置文件(hibernate...

    Hibernate_级联关系说明_-_关于cascade和inverse的用法

    在实际开发过程中,为了简化数据持久化的处理逻辑,Hibernate引入了级联操作和控制权反转两个概念。 ### 一、级联操作(Cascade) #### 1.1 级联操作简介 级联操作是Hibernate提供的一种用于简化关联对象管理的...

    hibernate 级联(cascade和inverse)一对多

    在Java的持久化框架Hibernate中,级联操作(Cascade)和反转(Inverse)是两个重要的概念,它们主要用于管理对象关系模型中的关联关系。在一对多的关系中,这些特性可以帮助简化数据操作,提高代码的可读性和维护性...

    Hibernate的缓存级联查询

    组件类没有独立的OID(对象标识符),不会在数据库中单独创建表,且不能单独持久化,但能与其他持久化类关联。 Hibernate的缓存机制是提高系统性能的关键。一级缓存是基于Session的,它保存了自Session打开以来所有...

    hibernate基础 二 关联映射 级联操作

    ### Hibernate基础之关联映射与级联操作 ...以上是关于Hibernate中关联映射和级联操作的基础知识概述,掌握了这些内容后,开发者能够在实际项目中更加灵活高效地使用Hibernate进行数据持久化操作。

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     8.5.3 持久化临时对象  8.5.4 更新游离对象  8.5.5 遍历对象图  8.6 小结  8.7 思考题 第9章 通过Hibernate操纵对象(下)  9.1 与触发器协同工作  9.2 利用拦截器(Interceptor)生成审计日志  9.3 ...

    精通Hibernate:java对象持久化技术

    【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...

    Hibernate 一对多、多对一、级联、加载、反转

    在Java持久化框架Hibernate中,一对多(One-to-Many)、多对一(Many-to-One)、级联(Cascading)、加载(Loading)和反转(Inversing)是关系映射的重要概念,它们对于理解如何在数据库和对象之间有效地管理关联至...

    关于Hibernate级联删除的问题.doc

    在Java的持久化框架Hibernate中,级联操作是一种非常实用的功能,它允许我们在对一个对象进行操作时,自动处理与其关联的对象。级联删除(Cascade Delete)就是其中之一,当删除一个对象时,会根据配置自动删除与之...

    精通Hibernate:Java持久化对象技术详解[第二版]

    《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...

    Java 精通Hibernate对象持久化技术权威指南

    《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...

    精通Hibernate:Java对象持久化技术详解(第2版)源码1

    通过这些章节的学习,读者不仅可以理解Hibernate的工作原理,还能熟练运用它来实现Java对象的持久化,从而提升数据库操作的效率和便捷性。每章的源码实例将帮助读者更好地理解和实践这些理论知识。

    hibernate:java持久化对象详解02

    在开始之前,建议先学习“hibernate:java持久化对象详解01”,以确保对基础概念有清晰的理解。 首先,我们来理解一下什么是持久化对象。在Java中,持久化对象(Persistent Object)是指其状态可以在数据库中长期...

Global site tag (gtag.js) - Google Analytics