hibernate 实体关系映射笔记
@经常使用属性说明:
@Entity:实体类
@Table:指定相应数据表
@Id:主键,使用能够为null值的类型,假设实体类没有保存到数据库是一个暂时状态
@Column:配置普通属性,除了主键外,java基本类型的属性
@Base:普通属性的载入方式
@GeneratedValue:主键生成策略
@Temporal:日期类型(DATE,TIME还是TIMESTAMP),假设属性类型是java.util.Date(是以上3个类的父类)类型时才须要使用该@声明详细的日期类型
@Transient:暂时属性
@Version:版本号属性,配置乐观锁
hibernate实体关联映射:
一对一单向:
一段:还有一端实体属性:@OneToOne(cascade),@JoinColumn(name=外键名,unique=true)
还有一端:
一段数据库:还有一端实体的外键:表名_id
还有一端数据库:
一对一双向:
一段:还有一端实体属性:@OneToOne(cascade),@JoinColumn(name=外键名,unique=true)
还有一端:还有一端实体属性:@OneToOne(mappedBy=还有一端属性名)
一段数据库:还有一端实体的外键:表名_id
还有一端数据库:
一对一双向(主键):
一段:@Id,@GeneratedValue,还有一端实体属性:@OneToOne,@PrimaryKeyJoinColumn
还有一端:@Id,不能使用@GeneratedValue(与还有一端使用同样主键),还有一端实体属性:@OneToOne,@PrimaryKeyJoinColumn
一段数据库:没有关联,依据主键推断
还有一端数据库:没有关联,依据主键推断
一对多单向:
一段:多端实体集合属性:@OneToMany(fetch,cascade,targetEntity(使用范型能够省略)),@JoinColumns(value={@JoinColumn(name="外键名"),referencedColumnName="还有一端id"})
多端:
一段数据库:
多端数据库:一段实体的外键:表名_id
多对一单向:
一段:
多端:一段实体属性:@ManyToOne(CascadeType,fetch),@JoinColumn(外键名)
一段数据库:
多端数据库:一段实体的外键:表名_id
一对多双向(多对一双向):
一段:多端实体集合属性:@OneToMany(mappedBy="多端实体类中的一段属性名")
多端:一段实体属性:@ManyToOne(fetch,cascadeType),@JoinColumn(外键名)
一段数据库:
多端数据库:一段实体的外键:表名_id
多对多单向:
多段:还有一端实体集合属性:@ManyToMany(fetch,cascade,),@JoinTable(name,JoinColumns,inverseJoinColumns)
还有一多端:
多段数据库:
还有一端端数据库:
中间表(表1_表2):外键1:表1_id,外键2:表2_id
多对多双向:
多段:还有一端实体集合属性:@ManyToMany(fetch,cascade,),@JoinTable(name,JoinColumns,inverseJoinColumns)
还有一多端:@ManyToMany(mappedBy=还有一多端实体集合属性名)
多段数据库:
还有一端端数据库:
中间表(表1_表2):外键1:表1_id,外键2:表2_id
1 双边关系中,控制权一般交给多端,由mappedBy指定,配置信息要到多端找
2 mappedBy把控制权交给还有一端(还有一端中的属性名),还有一端配置同单向配置全然同样
3 多对多属性必须使用@JoinTable指定中间表的配置,当中name指定表名,joinColumns指定该表与中间表的相应关系,inverseJoinColumns指定还有一端与中间表的关系
4 mappedBy表示该属性是反向属性,与还有一端实体类的指定的属性相应
5 Map映射:集合属性能够使用Map类型,Map使用索引-值属性对,速度快,配置时跟@OneToMany,@ManyToMany一样,仅仅需再添加�@MapKey就可以,如:
@MapKey(name = "name")//配置数据库列名,使用该字段索引数据
private Map<String,Student> students = new new HashSet<String,Student>();
hibernate 实体关系映射笔记的更多相关文章
- Hibernate实体关系映射(OneToMany单边)——完整实例
单边一对多关系:电子邮件管理 单边一对多关系:指一方有集合属性,包含多个多方,而多的一方没有一方的引用. 比如:用户(一)与电子邮件(多).一个用户可以有多个电子邮件记录. 目的:通过OneToMan ...
- Hibernate实体关系映射(OneToMany、ManyToOne双边)——完整实例
双边关系是最常见的配置.在多方有一方的引用,一方也有多方的引用.双边关系能够很方便地查询数据.看一个班级与学生的双边关系. 班级(Clazz类)与学生(Student类):一对多关系.班级中有学生属性 ...
- hibernate(3) —— 关系映射
hibernate中关系映射指的是实体类与实体类间的关系.和数据库中表与表之间的关系类似,有一对一,多对一,一对多,多对多四种映射关系. 一:一对一映射 两个对象之间是一对一的关系,如人和身份证之间是 ...
- Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件
原文:转:Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件 2011-04-30 12:50 很多人不知道怎么用 IntelliJ IDE ...
- JPA实体关系映射:@ManyToMany多对多关系、@OneToMany@ManyToOne一对多多对一关系和@OneToOne的深度实例解析
JPA实体关系映射:@ManyToMany多对多关系.@OneToMany@ManyToOne一对多多对一关系和@OneToOne的深度实例解析 今天程序中遇到的错误一 org.hibernate.A ...
- Hibernate注解关系映射
Hibernate Annotation关系映射的几种类型映射用法及使用方法(说明:以前实例的实体是user和role,主键分别是userid和roleid) 1)一对一外键关联映射(单向) @O ...
- [刘阳Java]_MyBatis_实体关系映射_第8讲
MyBatis既然是一个ORM框架,则它也有像Hibernate那样的一对多,多对多,多对一的实体关系映射功能.下面我们就来介绍一下如何使用MyBatis的实体关系映射 1.MyBatis实体关系映射 ...
- OrchardNoCMS实体关系映射扩展
在OrchardNoCMS中,默认的系统会把实体关系映射保存到mappings.bin文件中. 如果不进行任何修改,默认的可以自动保存关系映射的model是有很大限制的. 条件是model的命名空间必 ...
- JPA总结——实体关系映射(一对多@OneToMany)
JPA总结——实体关系映射(一对多@OneToMany) 注意:本文出自“阿飞”的博客,如果要转载本文章,请与作者联系! 并注明来源: http://blog.sina.com.cn/s/blog_4 ...
随机推荐
- 色谱峰的类型BB,BV,VB等都是什么意思
B(Baseline):峰在基线处开始或结束V(Valley):峰在谷点线处开始或结束P(Peak): 峰开始或结束与基线贯穿点BB就代表标准的峰:从基线开始出峰,最后峰到基线结束(from base ...
- NIS Edit&Nsis打包程序发布(安装和卸载)
转自:http://blog.csdn.net/signjing/article/details/7855855 注意:首选得明确自己需要打包的程序,以及程序需要的dll文件,资源文件等. 1.下载N ...
- python os.walk()和os.path.walk()
一.os.walk() 函数声明:os.walk(top,topdown=True,onerror=None) (1)参数top表示需要遍历的顶级目录的路径. (2)参数topdown的默认值是“Tr ...
- 一起刷LeetCode4-Median of Two Sorted Arrays
实验室太吵了...怎么办啊... ----------------------------------------------------------------------------------- ...
- 开源框架DNN使用01
我先简单地介绍下我个人对于DNN的浅显理解吧. 我觉得对于刚接触的人来说首先理解DNN的原理,大框架是很重要的.它整个网站其实是没几个页面的,从源码上就可以看出, 一个Default页.一个Error ...
- 第二百四十三天 how can I 坚持
制定的计划完成不了了,好多问题啊.又想当然了,晚上加了会班. 今天雾霾好严重,一出地铁大裤衩怎么没了.雾霾爆表啊. 还好现在刮大风了. 准备看<芈mi月传>了. 睡觉.
- Java邮件服务学习之一:邮件服务概述
java可以提供邮件服务:一般理解的邮件服务就是可以发送和接收邮件的客户端,另外就是使用java编写邮件服务端:两者区别在于客户端只负责给终端客户收发邮件,就相当于小区楼下的那一排排的铁皮邮箱盒,而邮 ...
- POJ 2777 Count Color (线段树成段更新+二进制思维)
题目链接:http://poj.org/problem?id=2777 题意是有L个单位长的画板,T种颜色,O个操作.画板初始化为颜色1.操作C讲l到r单位之间的颜色变为c,操作P查询l到r单位之间的 ...
- 使用 DllImport 属性
本主题说明 DllImport 属性的常见用法.第一节讨论使用 DllImport 从托管应用程序调用本机代码的优点.第二节集中讨论封送处理和 DllImport 属性的各个方面. 从托管应用程序调用 ...
- AngularJS~大话开篇
AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVVM.模块化.自动化双向数据绑定.语义化标签.依赖注入.等等. 前端 ...