前言:不管是注解配置还是xml,都是告诉hibernate你想创建什么样的数据表,几张数据表中的关系是什么,仅此而已,剩下的不过就是hibernate的优化了。

所以从创建数据表的ddl语句和数据表的结构出发就可以很轻松地知道,hibernate需要哪些信息了。

一、xml配置

表名的配置:	用<class>标签。
		属性说明:name------其值是一个Java类表示生成该Java类对应的数据表。
			  table-----其值表示该Java类对应的数据表的表名
			  lazy------值为true或false,  表示是否开启懒加载模式
		说明:
			关于表的字段的,约束,键值等配置的标签都是<class>标签的子节点
主键:		用<id>标签
		属性:name------Java类中对应主键的属性名
		      column----表示该字段在数据表中的名称。
		子标签:
		      <generator>  用于指明序列生成的方式
普通字段:	用<property>标签
		说明,一般就用name和column两个属性,没有声明column时,其值就是name的值。

关系标签:
	<many-to-one>
	说明:
		在一对多的关系中用在多方。
	属性:
		name-------值为该类所持有的外键引用
		column-----外键名字段
		cascade----设置关系的维护方式

	<set> 在多对一的情况下,到一方的Java类中含有多方的集合SET通道时
	属性:name----该属性指向的是该集合属性的名称。
	子标签:
		<key column="" /><!-- column属性是配置多方外键名 -->
		<one-to-many class="" /><!--class属性值表示many方对应的Java类(注意多方含有外键)-->

注意:在默认的情况下凡是同过关系通道要想将关系的被维护方的瞬时态对象持久化----------别做梦了,除非用cascade="all"开启权限。
      关于权限的设置一般在关系的维护方。

  

二、注解配置

注解:
	注解持久化对象:@Entity
	注解表名	@Table
	注解主键	@Id
	注解序列生成器	@SequenceGenerator(name="",sequenceName="")
			@GeneratedValue(generator="")
	注解字段名:	@Column()

关系注解:
	一对多:@OneToMany
		说明:1. 该注解配置在一对多关系中的一方的集合属性上
		      2. 因为一方并不是外键的持有者

		@ManyToOne
		说明: 1. 因为多方是外键的持有者,所以对外键属性要声明:@JoinColumn(name="cid")来引入外键列

	多对多:@ManyToMany()
		parameter 说明:mappedBy="field which used to relate the foreign key is belong to  inverseObject", 声明了该参数的Entity不能声明@JoinTable
		描述:	声明了@ManyToMany()注解之后还应该声明哪些注解
			维护关系通道的参数

	注解通过字段声明中间表的方式:@JoinTable(name="table_name",joinColumns={@JoinColumn(name="stu_id")},inverseJoinColumns={@JoinColumn(name="cid")})
		说明:	该注解主要是用来维护外键关系的
			joinColumns		用来声明当前与对象所维护的外键
		      	inverseJoinColumns	to statement the foreign key which is related to inverse object 

questions:
	1.声明了关系型注解----对应方式,根据对应方式需要告诉hibernate哪些信息?
	2.关系维护方和被维护方的权限
	3.ORM模型的工作原理
	4.hibernate 中的多对多,一对一,一对多等关系,其实质就是数据库中的各种关联关系,关键是如何将数据库模型转化为域模型----在转化过程中的关键点是----哪一方持有哪一方的引用

  待续..........

Hibernate 的两种配置的更多相关文章

  1. Hibernate实现有两种配置,xml配置与注释配置

    hibernate实现有两种配置,xml配置与注释配置. (1):xml配置:hibernate.cfg.xml (放到src目录下)和实体配置类:xxx.hbm.xml(与实体为同一目录中) < ...

  2. hibernate 一对一 one to one的两种配置方式

    hibernate中one-to-one两种配置方式 标签: hibernateHibernateone-to-one 2013-02-19 17:44 11445人阅读 评论(1) 收藏 举报  分 ...

  3. hibernate实现有两种配置,xml配置与注释配置。<转>

    <注意:在配置时hibernate的下载的版本一定确保正确,因为不同版本导入的jar包可能不一样,所以会导致出现一些错误> hibernate实现有两种配置,xml配置与注释配置. (1) ...

  4. Hibernate中双向多对多的两种配置方式

    Hibernate中双向多对多的两种配置方式 1.建立多对多双向关联关系 package cn.happy.entitys; import java.util.HashSet; import java ...

  5. 浅谈Spring的两种配置容器

    浅谈Spring的两种配置容器 原文:https://www.jb51.net/article/126295.htm 更新时间:2017年10月20日 08:44:41   作者:黄小鱼ZZZ     ...

  6. flask框架--设置配置文件的几种方式 与Flask两种配置路由的方式

    设置配置文件的几种方式 ==========方式一:============ app.config['SESSION_COOKIE_NAME'] = 'session_lvning' #这种方式要把所 ...

  7. Hibernate中两种获取Session的方式

    转自:https://www.jb51.net/article/130309.htm Session:是应用程序与数据库之间的一个会话,是hibernate运作的中心,持久层操作的基础.对象的生命周期 ...

  8. Spring整合Hibernate的两种方式

    在使用spring注解整合hibernate时出现"org.hibernate.MappingException: Unknown entity: com.ssh.entry.Product ...

  9. spring 中 hibernate 的 2种 配置方式(新旧 2种方式)

    Spring对hibernate配置文件hibernate.cfg.xml的集成,来取代hibernate.cfg.xml的配置 Spring对hibernate配置文件hibernate.cfg.x ...

随机推荐

  1. session放入缓存(redis)、DB

    为什么要把SESSION保存在缓存 就php来说,语言本身支持的session是以文件的方式保存到磁盘文件中,保存在指定的文件夹中,保存的路径可以在配置文件中设置或者在程序中使用函数session_s ...

  2. NOIP2016之反面教材提供

    NOIP 2016信息竞赛总结 竞赛历程总结: 算下来一共学了11个月的信息竞赛,从最初进来的时候大概会一点最最基础的语法,上课什么也听不懂,然后一直追进度,我想在这个阶段中我的问题主要是自己知道自己 ...

  3. 算法:寻找maximum subarray

    <算法导论>一书中演示分治算法的第二个例子,第一个例子是递归排序,较为简单.寻找maximum subarray稍微复杂点. 题目是这样的:给定序列x = [1, -4, 4, 4, 5, ...

  4. 第一次用golang写个小程序

    1.下载go1.6并安装.我是win7系统(会自动添加GOOROOT环境变,自己建一个放go文件的工程目录并添加到环境变量中) 2.下载liteide并解压缩.(liteide查看菜单中也可编辑环境变 ...

  5. 手把手教你在Ubuntu上安装Apache、MySql和PHP

    1:首先安装apache:打开终端(ctrl+Alt+t), 输入命令:sudo apt-get install apache2即可安装, 安装完后,打开浏览器,在地址栏输入:localhost或者h ...

  6. MFC listcontrol导出excel表格

    // 导出ExcelCString CBackGroundDlg::ExportAsExcel(CString filename, CListCtrl &resultlist, CWnd * ...

  7. window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法

    window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法 本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装 ...

  8. 每天一点 js join 函数

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  9. ajax+php数据增加查询获取删除

    前段代码部分其实前面已经有写出但是做一点修改所以还是贴出来,可能大家看到代码回不理解,看完图我想大家会理解我为什么这么写了,这和前端布局有关系的,先列出内容在选择内容删除或修改 <!DOCTYP ...

  10. mysql 修改root密码

    1.找到配置文件my.ini  ,然后将其打开,可以选择用记事本打开 C:\Program Files (x86)\MySQL\MySQL Server 5.0 2.打开后,搜索mysqld关键字,找 ...