`

hibernate 注解@joinColumn,@mappedBy详解

 
阅读更多

【转】http://xiaoruanjian.iteye.com/blog/1094253

class Card{

Person getPerson(){}

mappedBy 单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段

把关系的维护交给多方对象的属性去维护关系

a) 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性;
b) mappedBy标签一定是定义在the owned side(被拥有方的),他指向the owning side(拥有方);
c) 关系的拥有方负责关系的维护,在拥有方建立外键。所以用到@JoinColumn
d)mappedBy跟JoinColumn/JoinTable总是处于互斥的一方
cascade 设定级联关系,这种关系是递归调用

fetch 预加载策略和@Basic差不多FetchType.LAZY,FetchType.EAGER

比如Card(身份证)中的person(人)optional为false意味有身份证就必须有人对应,但是在实体Person中Card的optional为true意味有人不一定要有身份证。

name该外键的字段名,referencedColumnName外键对应主表的字段

所以要在person端的关联项设置外键@JoinColumn

双向多对多(实际开发中多对多通常是双向的)

name="teacher_student",

inverseJoinColumns={@JoinColumn(name="student_id",referencedColumnName="sid")}
joinColumns写的都是本表在中间表的外键名称,inverseJoinColumns写的是另一个表在中间表的外键名称。



单向多对多 更加简单略

 

分享到:
评论

相关推荐

    Hibernate 3 注解技术讲解

    **Hibernate 3 注解技术详解** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。 Hibernate 3引入了注解支持,使得开发人员无需XML配置文件即可进行对象持久化,提高了...

    hibernate 注解的一些资料

    **hibernate 注解详解** Hibernate 是一个流行的Java ORM(对象关系映射)框架,它允许开发者使用面向对象的方式操作数据库。在 Hibernate 中,注解是实现数据持久化的重要手段,它极大地简化了传统XML配置文件的...

    Hibernate注解大全收藏

    【Hibernate注解详解】 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,使得开发者可以方便地在Java对象与数据库表之间建立映射。为了简化配置,Hibernate引入了注解机制,允许开发者在Java类和类...

    Hibernate实体关联速查表

    这可以通过`@OneToOne`注解实现,可配置`mappedBy`属性来指定关联的反向字段。例如: ```java @Entity public class User { @OneToOne(mappedBy = "user") private Profile profile; } @Entity public class ...

    Hibernate注释

    - **示例**:假设有一个班级类(`Class`)和一个学生类(`Student`),其中`Student`类中定义了`@ManyToOne`类型的`class`字段,则`Class`类中可以使用`@OneToMany(mappedBy = "class")`来定义一对多关系。...

    hibernate关联映射

    **Hibernate关联映射详解** 在Java的持久化框架中,Hibernate是一个非常强大的工具,它使得开发者可以更加方便地处理数据库操作。其中,关联映射是Hibernate的核心特性之一,它允许我们将对象模型与关系数据库模型...

    Hibernate 注解

    《Hibernate注解详解》 Hibernate作为一款强大的Java持久化框架,极大地简化了数据库操作。在现代开发中,使用注解的方式进行配置已成为主流,它使得代码更加简洁且易于维护。本文将深入探讨Hibernate注解的使用,...

    hibernate关联映射详解SSH 多对多,一对多关系对象映射

    `mappedBy`属性指定了反向引用的属性名,`@JoinColumn`用于指定外键所在的列。 接下来,我们来看多对多关联映射。在数据库中,多对多关系表示两个表中的记录都可以相互关联。在Hibernate中,这通常通过中间表(或...

    Hibernate 注解配置

    【Hibernate注解配置详解】 在Java的持久化框架中,Hibernate是一个非常重要的工具,它极大地简化了数据库操作。本文将深入探讨Hibernate的注解配置,包括实体类的注解、映射关系的定义以及事务管理等方面,帮助你...

    Hibernate annotation

    《Hibernate注解详解》 在Java的持久化框架中,Hibernate以其强大的功能和灵活的配置深受开发者喜爱。本文将深入探讨Hibernate注解的使用,帮助读者理解如何通过注解简化对象关系映射(ORM)的过程。 一、...

    Hibernate annotation 详解

    **Hibernate注解详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。自Hibernate 3开始,引入了注解(Annotation)支持,使得开发者无需XML配置就能实现对象与数据库...

    hibernate注解 级联 多对一 一对多

    ### Hibernate注解与关系映射详解 #### 一、Hibernate注解基础 **1.1 @Entity** - **概述**:`@Entity`用于标记一个Java类为实体类,表明它是一个持久化对象,可以映射到数据库表。 - **参数**: - `name`:可选...

    hibernate一对一关系详解

    在这里,`mappedBy`属性用于指定对方实体中的字段,而`@JoinColumn`则用于指定外键所在的表和列。 2. **XML配置方式** 如果不使用注解,我们可以在`hibernate.cfg.xml`或`persistence.xml`中进行配置。例如: `...

    Hibernate一对多映射配置详解

    在双向关联中,需要在两个实体类的属性上分别添加`@OneToMany`和`@ManyToOne`注解,并通过`mappedBy`属性指定关联的另一端。 ```java @Entity public class User { @Id private Integer id; // ... @OneToMany...

    hibernate关系映射

    ### Hibernate关系映射详解 #### 一、概述 Hibernate 是一款非常流行的 Java 持久层框架,它简化了对象关系映射 (Object Relational Mapping, ORM) 的过程,使得开发人员可以更加专注于业务逻辑的编写,而无需过多...

    详解Hibernate一对一映射配置

    @OneToOne(mappedBy = "person", cascade = CascadeType.ALL) private Address address; // ... } @Entity public class Address { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; ...

    Hibernate_的简单教程

    ### Hibernate的简单教程:关联映射详解 #### 引言 Hibernate是一个强大的对象关系映射(ORM)框架,用于在Java应用中简化数据库操作。它允许开发者以面向对象的方式处理数据库,而无需直接编写SQL语句。本文将...

    hibernate_annotation

    《Hibernate Annotation 中文帮助文档详解》 Hibernate是一个流行的Java持久化框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库交互。在Hibernate中,Annotation是用于替代传统XML配置的一种...

    hibernate_anoatation(中文版)

    ### Hibernate注解(Annoatation)中文版详解 #### 版本:3.2.0CR1 在Java开发领域中,Hibernate作为一款流行的开源对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者用面向对象的方式来处理数据库...

Global site tag (gtag.js) - Google Analytics