一.hibernate中的实体创建规则
1>对象必须有oid.2>对象中的属性,尽量使用包装类型
3>不使用final修饰类
4>提供get/set方法....
二.hibernate主键生成策略(7种)
increment: 查询最大值.再加1identity: 主键自增.
sequence:Oracle使用的
hilo: hibernate自己实现自增算法
native: 根据所选数据库三选一
uuid: 随机字符串
assigned: 自然主键.
三.对象的三种状态
瞬时状态没有id,没有在session缓存中.
持久化状态
有id,在session缓存中。
托管|游离状态
有id,不在session缓存中.
持久化: 持久化状态的对象,会在事务提交时,自动同步到数据库中.
我们使用hibernate的原则.就是将对象转换为持久化状态.
四.一级缓存
缓存: 为了提高效率.一级缓存:为了提高效率.session对象中有一个可以存放对象的集合.
查询时: 第一次查询时.会将对象放入缓存.再次查询时,会返回缓存中的.不再查询数据库.
修改时: 会使用快照对比修改前和后对象的属性区别.只执行一次修改.
五.事务管理
1>如何配置数据库隔离级别1 读未提交
2 读已提交
4 可重复读
8 串行化
2>指定session与当前线程绑定
在hibernate.cfg.xml下配置
<property name="current_session_context_class">thread</property>
六.批量查询
HQL 面向对象的语句查询Criteria 面向对象的无语句查询
SQL 原生SQL