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

Hibernate一对多,多对一,多对多,一对一关系总结

阅读更多
前两种关系用的部门与员工两个表来说明


一对多
    <class name="hiber.Dept" table="DEPT" schema="SCOTT" >
        <id name="deptno" type="java.lang.Byte">
            <column name="DEPTNO" precision="2" scale="0" />
            <generator class="assigned" />
        </id>
        <property name="dname" type="java.lang.String">
            <column name="DNAME" length="14" />
        </property>
        <property name="loc" type="java.lang.String">
            <column name="LOC" length="13" />
        </property>
       <set name="emps" inverse="true" cascade="save-update" lazy="false">
            <key>
                <column name="deptno" precision="2" scale="0" />
            </key>
            <one-to-many class="hiber.Emp" />
        </set>

    </class>

这段代码是需要放在一对多中的主表配置中的

  name:集合属性的名称(也可以理解为一对多中那个“多”属性名)

  table:(可选,默认为属性“name”的值):集合表的名称(可理解为一对多中子表的名称)

  inverse:(可选,默认为false):标记这个集合作为双向关联关系中的方向的一端

  cascade:(可选:默认为none):让操作级联到子实体
    lazy:(可选)是否延迟加载

多对一

<class name="hiber.Emp" table="EMP" schema="SCOTT">
        <id name="empno" type="java.lang.Short">
            <column name="EMPNO" precision="4" scale="0" />
            <generator class="assigned" />
        </id>
        <many-to-one name="dept" class="hiber.Dept" fetch="select" lazy="false">
            <column name="DEPTNO" precision="2" scale="0" />
        </many-to-one>

        <property name="ename" type="java.lang.String">
            <column name="ENAME" length="10" />
        </property>
        <property name="job" type="java.lang.String">
            <column name="JOB" length="9" />
        </property>
        <property name="mgr" type="java.lang.Short">
            <column name="MGR" precision="4" scale="0" />
        </property>
        <property name="hiredate" type="java.util.Date">
            <column name="HIREDATE" length="7" />
        </property>
        <property name="sal" type="java.lang.Double">
            <column name="SAL" precision="7" />
        </property>
        <property name="comm" type="java.lang.Double">
            <column name="COMM" precision="7" />
        </property>
    </class>

中,没有像一对多的,而是直接用了many–to–one.这段代码是需要放在多对一中的子表配置中的(如上)

  outer–join:为外链接

  update,insert:指定对应的字段是否在用于UPDATE和/或INSERT的SQL语句中包含.

  column:关联的字段名.(多对主类对应的字段名)

  not–null:是否为null.

分享到:
评论

相关推荐

    Hibernate一对一,一对多,多对多实例

    本实例将深入探讨Hibernate中的三种基本关联关系:一对一(One-to-One)、一对多(One-to-Many)以及多对多(Many-to-Many)的实现方式。 1. **一对一关联**: 一对一关联通常出现在两个实体之间存在唯一对应关系...

    Hibernate关于注解的一对多,多对多,一对一

    本篇文章将深入探讨Hibernate中注解的一对多、多对多和一对一关系映射。 ### 一对多关系 在现实生活中,例如一个班级有一个班主任,而班主任可以管理多个学生,这就是典型的“一对多”关系。在Hibernate中,我们...

    hibernate一对一关联关系

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

    hibernate一对多项目

    本项目“hibernate一对多项目”旨在演示如何在JavaWeb应用中使用Hibernate处理一对多的关系映射。这里我们将深入探讨 Hibernate 的一对多关系、配置以及在实际项目中的应用。 首先,一对多关系在数据库中很常见,...

    hibernate一对多、多对一、一对一、多对多配置实例

    本文将深入探讨Hibernate中的一对多、多对一、一对一以及多对多四种关系映射的配置实例,帮助开发者更好地理解和运用这些关系。 ### 一对多关系(One-to-Many) 在数据库设计中,一对多关系是最常见的一种关联,...

    hibernate一对多案例

    本案例主要探讨的是Hibernate中的一对多关系映射,这是一种常见的对象关系映射(ORM)配置,用于表示一个实体与多个其他实体之间的关联。 在传统的数据库设计中,一对多关系是指一个表(父表)中的记录可以与另一个...

    hibernate一对多代码

    本文将详细解析"hibernate一对多映射"的概念、配置及其实现过程,以帮助理解并掌握这一核心特性。 首先,我们要明白在关系型数据库中,"一对多"关系意味着一个实体(比如一个部门)可以有多个相关实体(如部门下的...

    Hibernate映射一对多关联关系

    总结来说,使用Hibernate映射一对多关联关系涉及到实体类的设计、数据库关系模型的构建以及映射文件的编写等多个方面。正确地实现这些步骤可以帮助我们高效地管理和操作数据,提高应用程序的性能和可维护性。

    hibernate一对多与多对一

    本篇文章将详细讲解"hibernate一对多与多对一"的关系映射概念,以及如何在实际开发中进行配置和使用。 首先,我们来看一下“一对多”关系。在现实世界中,这种关系可以对应到例如一个班级有多个学生,或者一个人...

    hibernate一对一的关系

    在某些场景下,可能需要将原本的一对一关系转化为一对多或多对一关系,以优化性能。 ### 7. 事务管理 由于一对一关系涉及到两个实体,因此在处理这类关系时,需要注意事务管理,确保数据的完整性和一致性。 综上...

    hibernate一对多实例

    标题中的“hibernate一对多实例”指的是在Java编程中使用Hibernate框架处理数据库关系时的一对多关联映射。Hibernate是Java领域中的一个流行对象关系映射(ORM)框架,它允许开发者用面向对象的方式操作数据库,从而...

    hibernate多对一单向关联关系实现源码

    在Java的持久化框架Hibernate中,多对一(ManyToOne)关联关系是一种常见的对象关系映射(ORM)场景。这种关系通常出现在一个实体类拥有多条与另一个实体类相关的记录,而另一个实体类可能只有一条对应的记录。例如...

    Hibernate ORM - 一对多双向关联关系

    这个压缩包文件“HibernateORM”很可能包含了关于如何在实际项目中设置和使用Hibernate一对多双向关联的示例代码、配置文件或者详细教程。通过学习这些材料,开发者能够深入理解如何在Java应用中利用Hibernate来处理...

    hibernate 一对多和多对一的理解

    hibernate 一对多和多对一的理解 自己的个人看法 大家也来看看

    Hibernate一对多使用非主键关联设置

    在Java的持久化框架Hibernate中,一对多关系是常见的实体关联类型,特别是在处理数据库中的表结构时。在标准的关系型数据库设计中,一对多关系意味着一个表中的记录可以与另一个表中的多个记录相关联。例如,一个...

    Hibernate的一对一,一对多,多对多映射

    总结,Hibernate的一对一、一对多和多对多映射提供了灵活的数据模型设计,使得开发者可以方便地处理复杂的数据关系。理解并熟练运用这些映射关系,能极大地提高开发效率和代码质量。通过实际编程练习,可以更深入地...

    Hibernate的多对一和一对多操作实例

    总之,Hibernate的多对一和一对多操作不仅提供了灵活的关联管理,还允许开发者将复杂的数据关系逻辑封装在应用程序中,从而简化数据库设计,提高代码的可读性和可维护性。然而,这也要求开发者对Hibernate的映射机制...

    Hibernate表关系总结(一对一,多对一,多对多)

    一对一关系意味着两个实体之间存在一对一的对应关系。在Hibernate中,可以通过外键关联或联合主键来实现。 1. **外键关联** - 单向:一个实体类包含另一个实体类的引用,通过`@OneToOne`注解和`@JoinColumn`指定...

    hibernate多对多

    总结,Hibernate的多对多关系映射是数据库设计中非常重要的一个部分,它简化了Java对象与数据库表之间的交互。通过理解并实践案例,我们可以更深入地掌握这一特性,提高开发效率。在实际项目中,根据业务需求,合理...

    hibernate 一对多,两个实例项目

    总结,"hibernate 一对多,两个实例项目"旨在帮助开发者深入理解Hibernate中的一对多关系映射,并通过实际项目实践来提升技能。通过这两个实例,我们可以学习到如何配置、操作以及优化一对多关系,从而在实际开发中...

Global site tag (gtag.js) - Google Analytics