`

Hibernate ontomany示例

阅读更多

Hibernate ontomany示例

 

一对多关联映射利用了多对一关联映射原理

多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一
一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多

也就是说一对多和多对一的映射策略是一样的,只是站的角度不同

在一一端维护关系的缺点:
 * 如果将t_student表里的classesid字段设置为非空,则无法保存
 * 因为不是在student这一端维护关系,所以student不知道是哪个班的,
   所以需要发出多余的update语句来更新关系

Classes----->Student(一对多单向关联)

 

1.实体类(Classes、Student)、hibernate配置文件略。

2.实体类映射成数据库表略,请参见自动生成数据库表。

3.编写一对多关联映射文件:

 

Classes.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.lwp.hibernate">
 <class name="Classes" table="t_classes">
  <id name="id">
   <generator class="native"/>
  </id>
  <property name="name"/>
  
<set name="students">
    <key column="classesid"></key>
    <one-to-many class="Student"/>
  </set>
 </class>
</hibernate-mapping>

 

 

 

 

insert数据:

 

public void testSave() {
  Session session = null;
  try {
   session = HibernateUtils.getSession();
   session.beginTransaction();
   
   Student student1 = new Student();
   student1.setName("王大虎");
   session.save(student1);
   
   Student student2 = new Student();
   student2.setName("王二虎");
   session.save(student2);
   
   Set students = new HashSet();
   students.add(student1);
   students.add(student2);
   
   Classes classes = new Classes();
   classes.setName("信息605班");
   classes.setStudents(students);
   
   session.save(classes);
   
   session.getTransaction().commit();
  }catch(Exception e) {
   e.printStackTrace();
   session.getTransaction().rollback();
  }finally {
   HibernateUtils.closeSession(session);
  }
 } 
 

分享到:
评论

相关推荐

    hibernate官方示例

    **标题:“Hibernate官方示例”** **描述:**“这个包包含了Hibernate的英文文档和官方示例,是从Hibernate官网下载的。它为开发者提供了一个深入理解Hibernate ORM框架的绝佳资源,帮助开发人员学习如何在实际项目...

    Hibernate学习代码示例

    这个“Hibernate学习代码示例”压缩包文件为初学者提供了丰富的学习资源,帮助他们理解并掌握Hibernate的核心概念和实际应用。 首先,让我们详细探讨一下Hibernate的基础知识。Hibernate是一个开源的ORM框架,它的...

    Hibernate_使用示例代码

    **标题:“Hibernate_使用示例代码”** **描述:** 这篇资源主要提供了关于Hibernate框架的实战应用示例,作者在iteye博客上分享了相关的代码实现。通过学习这些示例,开发者可以更好地理解和掌握如何在实际项目中...

    Hibernate课堂示例

    Hibernate课堂示例Hibernate课堂示例Hibernate课堂示例Hibernate课堂示例

    hibernate完整小示例

    **hibernate完整小示例** Hibernate 是一个强大的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。这个“hibernate完整小示例”旨在提供一个基础的指南,帮助开发者理解如何在实际项目中...

    struts整合hibernate登录示例

    它是关于myeclipse的struts整合hibernate登录示例,是一个非常经典的用例!

    dwr + hibernate 入门示例代码

    《DWR + Hibernate入门示例代码详解》 在IT领域,DWR(Direct Web Remoting)和Hibernate是两个非常重要的工具,它们分别处理Web应用程序的远程调用和对象关系映射。本文将深入探讨如何结合DWR与Hibernate,通过一...

    mysql+struts2+hibernate简单示例

    在这个"mysql+struts2+hibernate简单示例"中,我们将深入理解这三个技术如何协同工作。 首先,MySQL是一个流行的开源关系型数据库管理系统,用于存储和管理应用程序的数据。在Web开发中,MySQL常被用作数据持久化的...

    hibernate-代码学习示例

    【hibernate-代码学习示例】是一个关于Hibernate框架的实战教程,主要针对开发者提供深入理解和使用Hibernate的实例。Hibernate是Java开发中的一个流行对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更...

    Hibernate示例

    在“Hibernate 示例”中,我们了解了 Hibernate 的基本概念,包括实体类的定义、配置文件的编写、会话和事务的使用,以及基本的 CRUD 操作。通过这个简单的示例,我们可以看到 Hibernate 如何简化了数据库操作,提高...

    webwork spring hibernate 整合 示例 项目 完整 代码

    这个示例项目结合了WebWork、Spring和Hibernate,旨在展示如何在实际开发中将这三个框架协同工作。`createdb.sql` 文件很可能是用来创建数据库的SQL脚本,它包含了初始的数据表结构和可能的初始数据。这个脚本在项目...

    spring_hibernate整合示例

    9. 最后,通过springhibernate这个文件名推测,可能包含了一个整合Spring和Hibernate的示例项目,可能包含了配置文件、实体类、DAO层代码以及运行示例所需的其他文件。分析这个项目可以帮助我们更好地理解和实践...

    Spring整合Hibernate示例

    Spring整合Hibernate配置测试示例

    spring famework4整合hibernate4示例代码

    由于篇幅限制,这里无法展示完整的示例代码,但你可以找到许多在线资源,如GitHub上的开源项目,它们提供了详细的Spring+Hibernate整合示例。在这些示例中,你会看到如何定义实体类、配置数据源、创建DAO、Service层...

    Hibernate入门示例.doc

    【Hibernate入门示例】 Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式处理数据库事务。在本文中,我们将深入探讨Hibernate的核心概念,包括配置...

    flex4 spring3 hibernate3 示例下载

    标题中的“flex4 spring3 hibernate3 示例下载”表明这是一个关于使用Adobe Flex 4、Spring 3和Hibernate 3这三种技术的集成示例项目。这个项目可能包含了如何在实际开发环境中结合这些技术的详细代码和说明。让我们...

    Struts2+Spring3+Hibernate4示例

    6. **文档**:Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3.doc可能是一个详细的技术文档,解释了如何运行和理解此示例。 通过这个示例,你可以学习到如何整合这三个框架,理解它们之间的协作机制,以及...

    struts1+spring+hibernate整合示例

    ### Struts1+Spring+Hibernate整合示例解析 在Java Web开发领域,Struts1、Spring与Hibernate三者的结合(通常简称为SSH)是构建复杂应用的一种常见模式。本篇文章将详细解读“struts1+spring+hibernate整合示例”...

    hibernate错误示例一

    在本示例中,我们将探讨一个关于Hibernate的常见错误,特别是与一对一(OneToOne)关系映射相关的错误。通过分析这个错误,我们可以深入理解Hibernate的OneToOne关联,并学习如何正确配置和解决此类问题。 标题...

    来自Java Persistence With Hibernate的示例

    《Java Persistence with Hibernate示例详解》 在Java开发领域,持久化是不可或缺的一部分,而Hibernate作为Java中最流行的ORM(对象关系映射)框架之一,它极大地简化了数据库操作。本篇将深入探讨“Java ...

Global site tag (gtag.js) - Google Analytics