ion.save(“”); 只会执行一次insert语句。 session.save(“sdfsdfsdf”);session.flush();立即执行 Session.evict(user);清除某一个指定的对象 一.操作实体对象的 Save(),update(),saveOrUpdate(),delete() Save()的时候直接就执行而不是等到提交的时候才执行。 二.操作缓存的 Clear(),evict();flush(); 三.查询实体对象的 Get();load();createQuery();createCriteria(); Load()不是马上执行,只有在你用的时候才会执行 Hibernate事务隔离级别
1(读未提交)/2(读已提交)/4(可重复读)/8(串行化(不可并行))
一对一映射 基于外键的方式: 1. 在person的配置文件中,其配置文件当中没有外键,property-ref属性写的是对方映射中外键列对应的属性名。 采用
标签 2.在idcard的配置文件中设置有外键的
注意:从有外键的哪一方解除关系可以的,但是从没有外键的哪一方解除关系是不可以的,只能由有外键的哪一方去解除关联关系。 基于主键的方式: 1. 在Person的配置文件当中 采用
标签 2.在Idcard的配置文件当中 采用:
标签 注意当使用一对一基于主键方式的时候,有外键方的主键生成策略一定要是foreign
person
删除时如果是没有外键的那一方(和对方的外键值有关联关系),直接执行删除动作的时候会发生异常,因为和对方的外键值有关联关系,但是如果是对方进行删除的话不会出现异常。 继承结构的: 1.设计表的时候可以将所有的内容都放在一张表中。不过一行中往往会有多个null的值 配置文件:
2.
3.
hi_value
next_value
100
8 HQL语句 Auto-import 表示在HQL语句中写类的简单名称时,是否自动的导包 QBC方式查询 :Query by Criteria 一对一的只有有外键的那一方才能维护关系。 继承结构的映射 1.所有的数据都放在一张表当中去,当然很多的列会存在=null的情况。 2.每个类对应着一张表,包括抽象类也有自己的一张表。 3.每个具体的类都对应着一张表但是抽象类不对应着表。 HQL语句查询的是对象和属性。 关键字不区分大小写,但是类名和属性名的话区分大小写。 语法 FROM 实体 AS E Where / Order by / group by 、having / Lazy属性 True:第一次的时候加载 False:及时的加载 Extra:增强的懒加载策略。 Hibernate连接池 使用C3P0连接池需要导入C3P0的包,只需要在Hibernate的配置文件当中进行设置即可
org.hibernate.connection.C3P0ConnectionProvider
5
20
120
3000
二级缓存:EhCacheProvider(比较强大些)(使用之前要导入三个jar包+ehcache.xml(直接拷贝用稍微修改即可))
org.hibernate.cache.EhCacheProvider
true
HashTable -->线程安全的,但是速度回慢一些 HashMap-->线程不安全的,速度快一些。 getCurrentSession只要是存在Session的时候就不会创建新的Session,当发生提交或者回滚后,Hibernate会自动的关闭Session 但是openSession则不一样,每次都是重新创建一个新的Session。?
|