`
zzc1684
  • 浏览: 1229067 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Hibernate -- 注解(Annotation)关系映射

阅读更多
1. Hibernate Annotation关系映射有下面几种类型:
1)一对一外键关联映射(单向)

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

3)一对一主键关联映射(不重要)在这不演示

在实际中很少用,使用注解@PrimaryKeyJoinColumn

意思是说,我的主键去参考另外一张表中的主键,作为我的主键,但是在我测试使用

注解一对一主键关联映射,在生成表的时候,数据库中并没有生成关联,使用XML

映射可以生成。Annotation注解一对一主键关联映,有些bug。不过没空去研究它。

因为在实际开发中一对一很少用。在实际开发中我机会没有用过,主键关联就更少了

4)多对一关联映射

5)一对多关联映射(单向)

6)一对多关联映射(双向)

7)多对多关联映射(单向)

8)多对多关联映射(双向)

 

2.介绍各种映射用法

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

@OneToOne(cascade=CascadeType.ALL)

@JoinColumn(name="userid",unique=true)

//一对一外键关联,使用@OneToOne,并设置了级联操作

//@JoinColum设置了外键的名称为userid(数据库字段名),如果不设置,则默认为另一类的属性名+ _id

 //外键的值是唯一的(unique),不可重复,与另一类的主键一直

 

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

 Class1里与上面一样,  

   Class2:

@OneToOne(mappedBy="class2",cascade=CascadeType.ALL)

//一对一双向关联关系,使用@OneToOne

//注意:需要加上mappedBy="class2",如果不加上的话,

//Class2也会生成一个外键(class1_id)

//mappedby="class2"需要指向与他关联对象的一个属性

//说明双向关联关系中,有且仅有一端是作为主体(owner)端存在的

//主体端负责维护联接列

//对于不需要维护这种关系的从表则通过mappedBy属性进行声明

//mappedBy的值指向主体的关联属性

//规律:只有是双向关联关系,都加上mappedby

    //cascade=CascadeType.ALL级联

 

4)多对一关联映射

在多的一端配置:

@ManyToOne(targetEntity=Organization.class)

@JoinColumn(name="orgid")

//多对一注解@ManyToOne

//targetEntity指定了关联对象

//@JoinColumn(name="orgid")指定生产的外键的字段名,默认是org_id

 

5)一对多关联映射(单向)


@OneToMany

@JoinColumn(name="orgid")

6)一对多关联映射(双向)

一端:


@OneToMany(mappedBy="org")

@JoinColumn(name="orgid")

 

多端:

@ManyToOne

@JoinColumn(name="orgid")

 

7)多对多关联映射(单向)


 

@ManyToMany

@JoinTable(name="t_u_r",

joinColumns={@JoinColumn(name="u_id")},

inverseJoinColumns={@JoinColumn(name="r_id")}

)

 

8)多对多关联映射(双向)  User端


@ManyToMany

@JoinTable(name="t_u_r",

joinColumns={@JoinColumn(name="u_id")},

inverseJoinColumns={@JoinColumn(name="r_id")}

)

 

Role端

@ManyToMany(mappedBy="role")

 

分享到:
评论
1 楼 beiyeren 2013-04-16  
好文。支持一下

相关推荐

    hibernate-annotation

    而Hibernate注解则是其在ORM(对象关系映射)领域的进一步进化,它允许开发者将元数据直接嵌入到Java类和属性的声明中,从而避免了XML配置文件的繁琐。本篇将详细阐述Hibernate注解的相关知识。 一、Hibernate注解...

    hibernate-distribution 3.3.2+annotation3.4.0+slf4j-1.5.8.rar )

    2. **对象关系映射**:Hibernate通过XML映射文件或注解来描述Java类与数据库表之间的映射关系,实现了数据的透明访问。3.3.2版本中,注解支持更为成熟,使得代码更简洁。 3. **查询语言HQL**:Hibernate Query ...

    hibernate-annotation-helloword

    **hibernate-annotation-helloworld** 是一个基于Hibernate框架,使用注解方式实现的Hello World示例项目。在Java世界中,Hibernate是一个流行的持久层框架,它极大地简化了数据库操作,尤其是在对象关系映射(ORM)...

    hibernate-Annotation.jar

    在Hibernate 3.x版本中,引入了Annotation注解,这是一种元数据的方式,可以替代XML配置文件来描述对象与数据库表之间的映射关系。 **Hibernate Annotation注解** 在Hibernate 3.x之前,对象到数据库的映射通常...

    hibernate-annotations 相关jar包

    在Hibernate中,Hibernate Annotations是一个重要的组成部分,它引入了JPA(Java Persistence API)的注解,使得对象-关系映射更加简洁且无需XML配置。 **一、Hibernate Annotations简介** Hibernate Annotations是...

    Hibernate-Annotation-3.4.0帮助文档

    Hibernate注解是一种元数据方式,允许开发者直接在Java类和属性上声明数据库相关的元信息。这包括实体类、字段、关联等的定义,使得数据库模型与Java对象模型之间的映射更加紧密。 **2. 主要注解** - `@Entity`: ...

    hibernate-annotation3.4.0 + hibernate-distribution3.3.2 + slf4j-1.5.8.rar

    该版本支持JPA(Java Persistence API),提供了对象-关系映射(ORM)的能力,使得开发者可以使用面向对象的方式处理数据库事务,而无需编写大量SQL语句。3.3.2版本相对于更早期的版本,增加了对Java 5和6的支持,...

    hibernate-annotation 所需要的jar包

    Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来处理数据库操作。在Java开发中,Hibernate与Annotation的结合使用极大地简化了数据持久化的复杂性,使得开发人员无需编写大量...

    hibernate annotations3.4.0 GA.rar

    现在已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用xml文件来映射更具有可读性,自我感觉以后Hibernate Annotation的映射方式将代替hibernate 的*....

    hibernate-annotations-3.4.0.GA.rar

    Hibernate注解是基于Java 5引入的元数据机制,允许在源代码中嵌入元数据信息,用于描述对象如何映射到数据库。例如,`@Entity`注解表示一个类作为数据库中的表,`@Table`定义表名,`@Id`标记主键字段。 2. **实体...

    Hibernate Annotation jar

    现在我们公司在做web项目的时候,已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用xml文件来映射更具有可读性,自我感觉以后Hibernate Annotation的...

    Hibernate-Annotation中文教程.pdf

    借助新的 Hibernate Annotation 库,即可一次性地分配所有旧映射文件,一切都会按照您的想法来定义——注释直接嵌入到您的 Java 类中,并提供一种强大及灵活的方法来声明持久性映射。 Hibernate Annotation 的优点...

    Hibernate-Annotation初步.rar

    使用Hibernate注解,我们可以直接在实体类上声明如@Entity、@Table、@Id等注解,来标识这个类是一个数据库表的映射,它的主键是什么,以及属性如何映射到表的列。例如: ```java @Entity @Table(name = "User") ...

    Hibernate-Annotation中文教程.docx

    借助新的 Hibernate Annotation 库,即可一次性地分配所有旧映射文件——一切都会按照您的想法来定义——注释直接嵌入到您的 Java 类中,并提供一种强大及灵活的方法来声明持久性映射。 使用 Hibernate 注解的优点...

    Hibernate -annotation 学习笔记

    Annotation是Hibernate提供的一种元数据方式,允许在Java类和字段上直接添加注解,以声明对象与数据库表之间的映射关系,从而替代传统的XML配置文件。 ### 第 1 课 课程内容 学习Hibernate Annotation,首先要理解...

    hibernate-annotation-3.4.0.GA

    《深入理解Hibernate注解3.4.0.GA》 Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作。在3.4.0.GA版本中,Hibernate引入了注解支持,使得开发人员能够更方便地在类和属性上直接...

    hibernate-release-4.2.12.Final libs

    - Annotation:元数据注解,用于标记实体类和属性,定义映射关系。 4. 应用场景与实践: - 数据库操作:通过Entity定义实体类,使用Annotation指定数据库表和字段映射,通过EntityManager实现CRUD操作。 - 查询...

    Hibernate one-to-many-annotation

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来处理数据库操作。在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相...

Global site tag (gtag.js) - Google Analytics