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. 【POJ 3279 Fliptile】开关问题,模拟

    题目链接:http://poj.org/problem?id=3279 题意:给定一个n*m的坐标方格,每个位置为黑色或白色.现有如下翻转规则:每翻转一个位置的颜色,与其四连通的位置都会被翻转,但注意 ...

  2. Pros and Cons of T4 in Visual Studio 2008

    Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008 Pros and Cons of T4 in Visual Studio 2008 Po ...

  3. UILocalNotification

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  4. Segment(技巧 相乘转换成相加 + java)

     Segment Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  5. 细说php(三) 运算符与表达式

    一.算术运算符    +   -  *  /  %  ++  -- <?php $a = 100; $a++; // $a=$a+1; 先用变量再自增1 ++$a; // $a=$a+1; 先用 ...

  6. 使用nodeitk进行角点检測

    前言 东莞,晴,33至27度.今天天气真好,学生陆续离开学校.忙完学生答辩事情,最终能够更新一下nodeitk.本文继续介绍node的特征识别相关内容,你会看到,採用nodeitk实现角点检測是一件十 ...

  7. XMLHttpRequest Level 2 使用指南

    XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最早,微软在IE 5引进了这个接口.因为它太有用,其他浏览器也模仿部署了,ajax操作因此得以诞生. ...

  8. C#中WinForm程序退出方法技巧总结

    C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.Ex ...

  9. 由WSDL文件生成WEB service server端C#程序(转)

    一般一个已经实现功能的WEB Server会发布自己的WSDL文件,供客户端生成代理类. 但有时是先有的server与client交互的接口定义(WSDL)文件,然后由server和client端分别 ...

  10. GDAL的安装和配置(编译proj.4)

    1.下载地址 http://trac.osgeo.org/gdal/wiki/DownloadSource 下面是两个版本: http://pan.baidu.com/s/1bntuXER  (1.1 ...