Hibernate缓存、组件、继承映射

三种状态:

临时状态:不受session管理,没有提交到数据库;没有执行sql之前,new对象的时候;

持久化状态:受session管理,提交到数据库;正在执行sql

游离状态:不受session管理,提交到数据库;session关闭后

Cache缓存:会先看看缓存里有没有,有就取出来,没有就到数据库取数据。

Session的三个方法:flush、evict、clear

不同session不会共享数据。

List与iterator的区别:

List是直接到数据库进行查询,也会放到缓存,但是不会到缓存取数据;

Iterator是到数据库取数据也放到缓存,会到缓存取数据。

Get和load的区别:

Get是及时查询,直接一个select出来;

Load默认是懒加载,使用到数据的时候才会到数据库取数据。会先到数据库取主键,然后根据主键一个一个遍历。

Lazy=true、false、extra(真正使用到数据的时候才回到数据库取数据,像isEmpty、size都不会到数据库取数据)

一对一映射:

<generator class=”foreign”>

<param name=”property”>引用的对象</

<id name="user_id">

<!--

id 节点指定的是主键映射, 即user_id是主键

主键生成方式: foreign  即把别的表的主键作为当前表的主键;

property (关键字不能修改)指定引用的对象     对象的全名 cn..User、  对象映射 cn.User.hbm.xml、   table(id)

-->

<generator class="foreign">

<param name="property">user</param>

</generator>

</id>

<!--

一对一映射,有外键方

(基于主键的映射)

constrained="true"  指定在主键上添加外键约束

-->

<one-to-one name="user" class="User" constrained="true"  cascade="save-update"></one-to-one>

组件映射

<!-- 组件映射 -->

<component name="wheel">

<property name="size"></property>

<property name="count"></property>

</component>

继承关系的映射

简单映射:

可以直接使用父类的属性;

获取时候注意:当写hql查询的使用,通过父类查询必须写上类的全名

每个类都对应一张表:(包括父类在内)

每个子类都这么写:

<joined-subclass name="Cat" table="t_cat">

<key column="t_animal_id"></key>

<property name="catchMouse"></property>

</joined-subclass>

每个类都对应一张表:(包括父类不在内)

需要将父类:abstract=”true” <class name="Animal" abstract="true">

abstract="true"  指定实体类对象不对应表,即在数据库段不生成表

<union-subclass name="Cat" table="t_cat">

<property name="catchMouse"></property>

</union-subclass>

注意:主键不能是自增长!可以用uuid,父类id要为String类型

Hibernate缓存、组件、继承映射的更多相关文章

  1. Hibernate中的继承映射

    1.继承映射 继承映射分为两种情况:简单继承映射和继承映射. 在简单继承映射中,每个子类都要写一个映射文件. 在继承映射中,只使用一个映射文件.继承映射分为三种情况: 所有子类映射到一张表 需要使用鉴 ...

  2. 【Hibernate 5】继承映射配置及多态查询

    一.继承实现的三种策略 1.1,单表继承.每棵类继承树使用一个表(table per class hierarchy) -->本文主要介绍的继承策略 类继承树对应多个类,要把多个类的信息存放在一 ...

  3. 【Hibernate步步为营】--继承映射具体解释

    上篇文章讨论了多对多映射,在使用多对多映射时重点是使用<many-to-many>标签,并在标签的两端加入外键这样在生成关系时会创建两个关系之间的关系表,通过关系表来维护它们之间的关系,另 ...

  4. Hibernate 再接触 继承映射

    用一张 每一个类一张表 建立外键 第一种 一张总表 Person package com.bjsxt.hibernate; import javax.persistence.Discriminator ...

  5. 【SSH系列】Hibernate映射 -- 继承映射

    开篇前言 在前面的博文中,小编介绍了hibernate中的映射,一对一,一对多,多对多,单向,双向等,今天这篇博文,小编主要来介绍一下hibernate中的继承映射,小伙伴都知道在C#中,如果想要实现 ...

  6. Hibernate征途(五)之继承映射和组件映射

    之所以把这两种映射放到一起说,是因为二者都是以复用为目的,减少了代码和配置量,这是相同点:二者之间的不同点类似继承和实现的区别:继承的类是一个事物的抽象,而实现的接口仅仅是功能的抽象. 继承映射 如上 ...

  7. Hibernate第九篇【组件映射、继承映射】

    前言 到目前位置,我们已经学习了一对一.一对多.多对一.多对多映射了-既然Hibernate是ORM实现的框架,它还提供了组件映射和继承映射..本博文主要讲解组件映射和继承映射 Java主要的类主要有 ...

  8. 【Hibernate框架】三种继承映射

    一.综述 大家都知道,hibernate作为ORM框架的一个具体实现,最大的一个优点就是是我们的开发更加的能体现出"面向对象"的思想.在面向对象开发中,类与类之间是可以相互继承的( ...

  9. hibernate笔记--继承映射关系的三种实现方式

    单表继承映射(一张表): 假设我们现在有三个类,关系如下: Person类有两个子类Student和Teacher,并且子类都具有自己独有的属性.这种实体关系在hibernate中可以使用单表的继承映 ...

随机推荐

  1. Binary Tree Paths 解答

    Question Given a binary tree, return all root-to-leaf paths. For example, given the following binary ...

  2. IOS开发之---触摸和手势

    Touch:在与设备的多点触摸屏交互时生成. 响应者对象 响应者对象就是可以响应事件并对事件作出处理.在iOS中,存在UIResponder类,它定义了响应者对象的所有方法.UIApplication ...

  3. C的|、||、&、&&、异或、~、!运算(转)

    位运算     位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果. 位运算符有:     &(按位与).|(按位或) ...

  4. ZOJ Monthly, June 2014 月赛BCDEFGH题题解

    比赛链接:点击打开链接 上来先搞了f.c,,然后发现状态不正确,一下午都是脑洞大开,, 无脑wa,无脑ce...一样的错犯2次.. 硬着头皮搞了几发,最后20分钟码了一下G,不知道为什么把1直接当成不 ...

  5. onvif规范的实现:onvif开发常用调试方法 和常见的segmentation fault错误

    在前几篇中,虽然已经实现了rtsp视频流的对接,但是还要做的工作还非常多,onvif本来就是一个覆盖面非常广的一个协议,每一个功能都要填充大量的函数.而且稍不注意就会出现segmentation fa ...

  6. C#整理8——结构体

    结构体:相当于是我们自己定义的一种复杂的类型.int... double float bool char string DateTime 数组类型生活中大部份的对象都是复合型的对象. 如何定义结构体类 ...

  7. Android系统休眠对程序的影响以及处理

    Android系统在用户长时间不操作时,为了节省资源,系统会选择休眠.在休眠过程中自定义的Timer.Handler.Thread.Service等都会暂停.而有时候这种机制会影响到我们程序的正常运行 ...

  8. 在Red Hat Enterprise Linux 5 64-bit安装oracle11g r2

    网上这种文档一搜就一堆,没别的目的,刚接触oracle为了加深理解记忆.只要是跟我的版本一样操作系统和oracle软件,按照步骤肯定可以成功安装 在虚拟机上安装Red Hat Enterprise L ...

  9. (转)Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds

    仰天长啸 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds... 当启动tomcat时候出现 S ...

  10. HDU 5793 - A Boring Question

    HDU 5793 - A Boring Question题意: 计算 ( ∑(0≤K1,K2...Km≤n )∏(1≤j<m) C[Kj, Kj+1]  ) % 1000000007=? (C[ ...