`
VerRan
  • 浏览: 458715 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

Hibernate自关联关系

阅读更多

    自关联的例子:我觉得自关联好像就是当表存在自包含关系就是自己还可以再细分的情况下应用的!一直不知道怎么理解好,暂时就这么理解吧!

业务逻辑:<o:p></o:p>

书籍的种类,本身是自关联的关系,如下图所示:<o:p></o:p>

所有书籍:<o:p></o:p>

历史书籍<o:p></o:p>

音乐书籍<o:p></o:p>

           钢琴书籍<o:p></o:p>

烹饪书籍<o:p></o:p>

           美食书籍

1.     Books类的源程序
代码的目录结构
Classes
                  Hibernate.property
       /mypack
                  Books.java
                  BusinessService.java
                  Books.hbm.xml
book.java

  1. package mypack;   
  2. import java.util.Set;   
  3. import java.io.Serializable;    
  4. public class Books   
  5.     implements Serializable {   
  6.  /**  
  7.    * 默认构造函数  
  8.    */  
  9.  public Books() {   
  10.  }    
  11.  /** 主健id */  
  12.  private Long id;   
  13.     
  14.  /** 书籍名称 */  
  15.  private String name;   
  16.  /** 父书籍 */  
  17.  private mypack.Books parentCategory;    
  18.  /** 子集合 */  
  19.  private Set childCategories;    
  20.  /** 完整构造函数 */  
  21.  public Books(String name, mypack.Books parentCategory, Set childCategories) {   
  22.     this.name = name;   
  23.     this.parentCategory   
  24. = parentCategory;    
  25.     this.childCategories = childCategories;   
  26.  }   
  27.  /** 最小构造函数 */  
  28.  public Books(Set childCategories) {   
  29.     this.childCategories = childCategories;   
  30.  }    
  31.  public Long getId() {   
  32.     return this.id;   
  33.  }   
  34.  public void setId(Long id) {   
  35.     this.id = id;   
  36.  }   
  37.     
  38.  public String getName() {   
  39.     return this.name;   
  40.  }   
  41.     
  42.  public void setName(String name) {   
  43.     this.name = name;   
  44.  }   
  45.     
  46.  public mypack.Books getParentCategory() {   
  47.     return this.parentCategory;   
  48.  }   
  49.     
  50.  public void setParentCategory(mypack.Books parentCategory) {   
  51.     this.parentCategory = parentCategory;   
  52.  }   
  53.     
  54.  public Set getChildCategories() {   
  55.     return this.childCategories;   
  56.  }   
  57.     
  58.  public void setChildCategories(Set childCategories) {   
  59.     this.childCategories = childCategories;   
  60.  }   
  61. }   
  62.     

  映射文件,放在classes/mypack<o:p></o:p>

                        Books.hbm.xml

xml 代码
  1. <!---->xml versio   
  2. n="1.0"?>    
  3. <!---->
  4. PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"   
  5. "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">  
  6. <hibernate-mapping >  
  7.     
  8.  <class name="mypack.Books" table="books" >  
  9.     <id name="id" type="long" column="ID">  
  10.       <generator class="increment"/>  
  11.     id>  
  12.     
  13.     <property name="name" type="string" >  
  14.         <column name="NAME" length="15" />  
  15.     property>  
  16.     
  17.     <set    
  18.         name="childCategories"  
  19.         cascade="save-update"  
  20.         inverse="true"  
  21.         >  
  22.         <key column="CATEGORY_ID" />  
  23.         <one-to-many class="mypack.Books" />  
  24.      set>      
  25.     
  26.    <many-to-one  
  27.         name="parentCategory"  
  28.         column="CATEGORY_ID"  
  29.         class="mypack.Books"  
  30. cascade="save-update"    
  31.        />  
  32.     
  33.  class>  
  34.     
  35. hibernate-mapping>  

 数据库Schema<o:p></o:p>

数据库Schema
<o:p></o:p>

xml 代码
  1. Create table books(   
  2.        Id number(10) not null,   
  3.        Name varchar2(64),   
  4. Category_id number(10),   
  5. Primary key(id)   
  6. );   
  7.     
  8.     
  9. 1.       hibernate.property   
  10. hibernate.property    
  11. hibernate.dialect net.sf.hibernate.dialect.Oracle9Dialect   
  12. hibernate.dialect net.sf.hibernate.dialect.OracleDialect   
  13. hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver   
  14. hibernate.connection.username testpm   
  15. hibernate.connection.password testpm   
  16. hibernate.connection.url jdbc:oracle:thin:@localhost:1521:wsy   

 

分享到:
评论
1 楼 paladin1988 2012-11-22  
good,我喜欢..

相关推荐

    Hibernate的关联关系映射图解

    Hibernate4中映射关系图解。

    Hibernate 关联关系解除

    一、Hibernate关联关系介绍 在Hibernate中,关联关系主要包括以下几种: 1. 一对一(OneToOne):一个实体对应另一个实体的唯一实例。 2. 一对多(OneToMany):一个实体可以与多个其他实体相关联。 3. 多对一...

    hibernate的关联关系映射

    【hibernate的关联关系映射】在Java持久化框架Hibernate中,关联关系映射是核心功能之一,它允许对象间的复杂关系与数据库中的表结构相匹配。在选课系统这个例子中,主要涉及到的对象包括课题(Course)、教师(Teacher...

    hibernate关联关系总结

    Hibernate关联关系是Java持久化框架Hibernate中的核心概念,它允许我们在数据库中建立对象之间的关系映射,以便在程序中操作对象时,可以自动处理与数据库的交互。本篇将深入探讨Hibernate的四种主要关联关系:一对...

    Hibernate关联关系

    ### Hibernate关联关系详解 在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,为开发者提供了方便地操作数据库的方式。通过将Java对象与数据库表进行映射,Hibernate大大简化了数据持久化层的...

    hibernate各种常用关联关系的基本配置

    本篇文章将深入探讨Hibernate中常见的几种关联关系及其基本配置。 一、一对一(OneToOne)关联 在一对一关联中,一个实体对象只对应数据库中的一个记录。配置方式通常通过`@OneToOne`注解实现,可以设置`mappedBy`...

    基于注解的关联关系Hibernate

    在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...

    Hibernate_关联关系映射配置详解

    Hibernate_关联关系映射配置详解,希望能帮助广大java爱好者

    Hibernate_关联关系映射配置

    本教程将详细讲解Hibernate中的关联关系映射配置,帮助你理解和掌握如何在Hibernate中设置不同类型的关联。 一、一对一(One-to-One)关联 在现实世界中,两个实体之间可能存在一对一的关系,例如一个人只有一个...

    hibernate关联关系实例

    在这个“hibernate关联关系实例”中,我们将深入探讨四种基本的关联关系:一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many),同时也会涉及Hibernate查询语言(HQL)...

    Hibernate注解 关联关系映射注解.docx

    本篇文章将详细探讨在Hibernate中如何使用注解来处理各种关联关系,特别是`mappedBy`属性的用法。 首先,`@OneToMany`注解用于表示一对多的关联关系,比如一个班级可以有多个学生。在单向关联中,我们通常在拥有...

    Hibernate映射关联关系.pdf

    Hibernate映射关联关系.pdf

    Hibernate关联关系练习【全】

    总之,Hibernate关联关系是理解其工作原理的关键,它使得Java对象和数据库记录之间的映射变得简单。通过练习,你可以掌握如何配置和使用这些关系,以及如何进行相关的查询操作,从而提升你的开发效率和代码质量。...

    hibernate关联映射详解

    hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的关联关系,...

    hibernate一对一关联关系

    在实体类之间,Hibernate支持多种关联关系,包括一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。本资源主要探讨的是“hibernate一对一关联关系”。 一对一关联关系在现实世界中很常见,...

    Hibernate 关联关系映射分类

    在深入探讨Hibernate关联关系映射分类之前,我们首先简要回顾一下Hibernate框架的基本概念。Hibernate是一种持久层框架,主要用于Java应用程序中的对象关系映射(ORM),它能够将面向对象的数据模型转换为数据库中的...

    hibernate实现多对多关联关系源码

    在Java的持久化框架Hibernate中,多对多(Many-to-Many)关联关系是一种常见的实体间关系类型,它表示一个实体可以与多个其他实体相关联,反之亦然。本源码示例将深入探讨如何使用Hibernate来配置和管理这种复杂的...

Global site tag (gtag.js) - Google Analytics