hibernate学习笔记

时间精度的控制
ID生产策略:native identity sequence uuid hilo increment foreign
注意联合主键和外键的生成方式

二、核心API
1.Configuration:配置和启动hibernate。
2.SessionFactory:重量级的安全的对应数据源的用于创建Session的接口。
3.Session:轻量级的的不安全的CURD接口, 原则:一个线程一个Session;一个事务一个Session。
4.Transaction接口。
5.Query:包装HQL。
6.Criteria接口:完全封装了基于字符串形式的查询语句,比Query接口更面向对象。更擅长于执行动态查询。

get与load的区别(面试重点,原理)
1. 不存在对应记录时表现不一样
2. load返回的是代理对象,等到真正用到对象的内容时才发出sql语句
3. get直接从数据库加载,不会延迟
session.clear();
session.flush();

三、开发步骤
1.导入jar(hibernate+mysql)。
2.建表。
3.安装Jboss中的hibernate tools。
4.建hibernate.cfg.xml。(记得mapping model进去。,去掉session-factory的name属性 )
5.调用hibernate API编程。
关系映射(重要)
性能优化
事务

四、实体对象的三种状态:
Transient:DB无记录,不在session内。
Persistent:DB有记录,在session内。
Detached:DB有记录,不在session内。

五、性能优化

六、对象映射
一对一:主键关联、外键关联
http://bkdwei.blog.163.com/blog/static/173505304201642114313439/?newFollowBlog
   @OneToOne(cascade = CascadeType.ALL, mappedBy = “user”)
   public Account getAccount() {
      return account;
}

多对一、一对多
  @ManyToOne(cascade = CascadeType.ALL)
   @JoinColumn(name = “userid”)
   public User getUser() {
      return user;
   }

Author: bkdwei