`
woow
  • 浏览: 1049 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hibernate中映射自然外键

    博客分类:
  • J2EE
阅读更多

Hibernate开发中,通常都是用id来做代理主键,来屏蔽主键与业务的关系。

例如下面学生与班级的ORM

SQL

create table classes

(

   id                      int(32)      unsigned       not null default '0',

   cla_no                         varchar(10)                    not null,

   cla_name                       varchar(50),

   primary key (id)

)

type = InnoDB;

alter table classes add constraint cla_no_unique unique (cla_no);

 

 

create table student

(

   id                    int(32)         unsigned      not null default '0',

   stu_no                         varchar(20)                    not null,

   stu_name                       varchar(30),

   stu_sex                        char(2),

   stu_age                        int(3),

   stu_address                    varchar(100),

   stu_class                      varchar(10),

   primary key (id)

)

type = InnoDB;

alter table student add constraint stu_no_unique unique(stu_no);

alter table student add constraint FK_Reference_1 foreign key (stu_class)

      references classes (cla_no);

classes(cla_no)作为student(stu_class)的外键

 

关系映射文件

1.    student.hbm.xml

<hibernate-mapping>

    <class name="pojos.Student" table="student" catalog="hibernate">

        <id name="id" type="integer">

            <column name="id" />

            <generator class="hilo" />

        </id>

        <many-to-one name="classes" class="pojos.Classes" fetch="select" cascade="all" lazy="false" property-ref="claNo">

            <column name="stu_class" length="10" />

        </many-to-one>

        <property name="stuNo" type="string">

            <column name="stu_no" length="20" not-null="true" unique="true" />

        </property>

        <property name="stuName" type="string">

            <column name="stu_name" length="30" />

        </property>

。。。。。。。。。

2.    classes.hbm.xml

<hibernate-mapping>

    <class name="pojos.Classes" table="classes" catalog="hibernate">

        <id name="id" type="integer">

            <column name="id" />

            <generator class="hilo" />

        </id>

        <property name="claNo" type="string">

            <column name="cla_no" length="10" not-null="true" unique="true" />

        </property>

        <property name="claName" type="string">

            <column name="cla_name" length="50" />

        </property>

        <set name="students" inverse="true">

            <key property-ref="claNo">

                <column name="stu_class" length="10"/>

            </key>

            <one-to-many class="pojos.Student" />

    </set>

 

POJO属性:

Student.java

    private Integer id;

    private Classes classes;

    private String stuNo;

    private String stuName;

    private String stuSex;

    private Integer stuAge;

Classes.java

分享到:
评论

相关推荐

    hibernate一对一外键关系

    本文将深入探讨Hibernate中的一对一外键关系,这对于初学者来说是非常重要的概念。 一对一(One-to-One)关系是数据库设计中的一个基本关系类型,表示两个实体之间存在唯一的对应关系。例如,在员工管理系统中,一...

    Hibernate一对一外键映射

    **标题:Hibernate一对一外键映射** 在关系型数据库中,一对一(One-to-One)关联是一种常见的关系,它表示两个实体之间存在着唯一的关系。Hibernate,作为Java领域中的一个流行的ORM(对象关系映射)框架,提供了...

    Hibernate 一对多外键单向关联

    在Java持久化框架Hibernate中,一对多外键单向关联是一种常见的关系映射方式,它描述了一对多的关系,其中一个实体(例如Person)可以与多个其他实体(例如Address)相关联,而关联的方向只从多方(Address)指向...

    Hibernate一对一唯一外键关联映射(单向关联)

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的...以上就是关于Hibernate一对一唯一外键关联映射(单向关联)的详细说明。通过这种方式,我们可以轻松地在Java应用中处理数据库的一对一关系。

    Hibernate 一对一外键单向关联

    本篇文章将深入探讨Hibernate中的一对一外键单向关联。 首先,一对一外键关联指的是一个实体通过外键直接引用另一个实体的主键。在单向关联中,只有其中一个实体知道另一个实体的存在,而另一个实体则无感知。这种...

    hibernate基于主外键的一对多/多对一关联

    "hibernate基于主外键的一对多/多对一关联"是Hibernate中两个核心的概念,用于描述实体之间的关系。下面将详细阐述这两个关联类型及其实现方式。 一对多关联是指在数据库中,一个表的记录可以与另一个表中的多个...

    hibernate一对一唯一外键关联映射(单项关联)

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射方式之一,尤其在处理数据库中的唯一外键关联时。这种映射方式允许在一个实体类中引用另一个实体类的唯一实例,形成一对一的关系。在...

    hibernate中基于外键的one2one

    在Hibernate中,基于外键的One-to-One映射通常是在一方实体的表中添加一个指向另一方实体的外键。这种方式可以是单向的,也可以是双向的。如果两个实体都包含对方的引用,那么需要在两边都进行配置。 **3. 配置文件...

    Hibernate Annotation 基于外键的一对多双向关联

    本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体实例来解析这个主题,并结合源码分析其工作原理。 首先,我们要明白一对多关联意味着一个实体可以拥有多个关联的实体。在数据库...

    Hibernate一对一单向外键关联 (联合主键annotation)

    本篇将详细讲解如何使用Hibernate进行一对一单向外键关联,并且该关联涉及到联合主键的注解配置。 首先,一对一关联可以分为两种类型:单向和双向。在单向一对一关联中,只有一个实体知道另一个实体的存在,而另一...

    Hibernate一对一唯一外键关联映射(双向关联)

    本篇将详细讲解如何使用Hibernate实现一对一唯一外键(Unique Foreign Key)关联映射,并以双向关联为例进行深入探讨。 一、Hibernate一对一关联类型 一对一关联在现实世界中很常见,例如一个人只有一个身份证,一...

    hibernate中的外键查询实现

    在Java的持久化框架Hibernate中,外键查询是连接数据库表之间关系的一种重要方式,它使得我们可以方便地处理对象间的关联。在这个场景中,我们关注的是"多对一"的关系,即在一个表(br_basic)中有对另一个表(city_...

    Hibernate使用外键ForeignKey

    本篇将详细讲解如何在Hibernate中使用外键`ForeignKey`,以及通过一个简单的例子帮助学习者深入理解其配置与操作。 首先,外键是数据库设计中的一个重要概念,它用于建立两个表之间的关联,通常用来维护数据的一致...

    Hibernate Annotation 基于外键的单向多对一关联

    本篇文章将深入探讨如何使用Hibernate Annotation来实现基于外键的单向多对一关联。 在关系型数据库中,多对一关联是一种常见的关系类型,意味着一个实体(如表)可以与另一个实体有多条记录关联,而另一个实体只能...

    hibernate一对一之唯一外键关联(双向关联)

    本篇主要探讨的是Hibernate中的一对一(OneToOne)关系映射,特别是唯一外键关联(UniDirectional and Bidirectional Association)的情况。我们将深入理解这种关联方式的配置、实现以及它在实际应用中的价值。 1. ...

    Hibernate Annotation 唯一外键一对一双向关联

    在Java的持久化框架Hibernate中,`@OneToOne`注解用于表示一对一的关联关系,而唯一外键一对一双向关联则是这种关系的一种具体实现方式。这篇文章将深入探讨这一概念,帮助你理解如何在实际开发中应用。 首先,我们...

    HibernateOneOneBidirectionalForeignkey:Hibernate OneOne双向外键

    本教程将详细探讨Hibernate中的双向外键(Bidirectional Foreign Key)配置,以及如何在实际项目中进行操作。 在一对一关系中,两个实体类之间的关联可以是单向或双向的。单向关联意味着在一个实体类中可以访问另一...

    hibernate一对一唯一外键关联映射(双向关联)

    本篇将深入探讨Hibernate中的一对一唯一外键关联映射,特别是双向关联的实现。 ### 1. 一对一关联概述 一对一关联意味着一个实体只能与另一个实体的单一实例相关联,这种关系通常出现在两个表之间,其中一个表的...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    Hibernate 一对一唯一外键关联映射详解 Hibernate是一种流行的Java持久层框架,提供了多种关联映射方式,其中一对一唯一外键关联映射是一种常见的关联方式。在本文中,我们将详细介绍Hibernate一对一唯一外键关联...

Global site tag (gtag.js) - Google Analytics