- 主键生成策略
- hilo
- sehilo
- uuid 通用统一识别码
- 16字节
- ID是表独立和库独立的
- 适用于插入并发要求高的系统
- 基础文件
- POJO
- *.hbm.xml(内容:表属性和字段属性)
- hibernate.cfg.xml
- 构建Hibernate基础代码的方式
- 手工
- 数据库导出(荐)
- JAVA代码生成映射文件
- XDoclet
- Annotation
- mini-web中采用了注解的方式产生了最少的配置文件
- 运行期:Config,Session,POJO,Action
- Session
- Save
- Flush 在事务结束和Session关闭时会自动Flush
- Find
- Discriminator 多态支持
- 数据检索
- Criteria
- HQL
- SQL
- 数据关联
- one-to-one
- one-to-many
- cascade VS inverse
- 双向一对多关系(☺主控方:many-to-one 受控方:one-to-many)
- many-to-many
- 数据访问
- PO: 纳入Hibernate管理框架的VO,应该尽量避免传入其他层使用
- VO = POJO
- unsaved-value
- lazy-loading 只有在真正需要的时候才真正执行数据加载的配置
- 写POJO的时候做集合属性应该用Collection接口来声明而不是JDK的实现类。因为hibernate对Collection接口有自己的实现。
- 事务管理 hibernate本身不具备事务管理机制。只是简单的使用JTA和JDBC的事务机制。
- 锁
- 悲观锁 主要利用DB的数据库锁机制
- 乐观锁 hibernate框架实现的锁机制。思想:版本号 因此可能导致脏数据
- 脏数据 物理上临时存在过但在逻辑上不存在的数据。
- 分页
- Cache
- 第一层 使用Session
- 第二层 ECache
- Session
- SessionFactory是线程安全的
- Session不是线程安全的