hibernate学习笔记

hibernate学习笔记
1.persist-->持久
PO-->Persistent Object:持久化对象
2.dialect:方言
3.factory:工厂
4.annotation:注释
5.assist-->辅助,帮助
Content assist--myeclipse不给提示
6.schema-->模式
7.@Transient--->短暂的,瞬变的,透明的
@Basic--->默认加上去的
8.generator:生成器(xml配置)
GeneratedValue(annotation方式)--->默认auto,也就是xml配置方式里的native
9.native:本地的,与生俱来的,本国的
https://www.360docs.net/doc/f114174133.html,posite-id--->复合组件(xml配置方式)
11.Transient--Persistent--Detached :三种状态
detached:分离
11.@EmbeddedId--->联合组件(annotation方式)
composite:复合,合成
12.sequece:序列,按顺序排列
13.custom:定制的,自定义的
customer:用户,客户
14.serializable:序列化
15.get 和 load的区别:
1)load返回的是代理对象,等到真正用到对象的内容时才发出sql语句,get 直接从数据库加载,不会延迟
2)不存在对应记录时表现不一样,get会返回null,load会抛出异常
16.merge:合并
17.update的用法:
1)用来更新detached对象,更新完状态转为persistent
2)更新transient对象会报错,除非自己设定id
3)persistent状态的对象只要设定不同字段就会发生更新(不用调update ()方法)
4)更新部分更改的字段的方法
1】xml设定property标签的update属性,annotation设定@column 的 updatable属性
2】使用xml中的dynamic-update属性
3】使用HQL(EJBQL--->建议
18.无论是update还是get,都会首先查找缓存(一级缓存),如果没有,才会去数 据库里查找,调用clear()方法可以清除session缓存
19.flush():强制缓存与数据库同步
20.merge:合并 inverse:反转(true) cascade:级联(all)
21.关系映射:
i)一对一单向外键关联: @OneToOne,如果要改字段名字 (@joinColumn(name="wilfId")),在xml中指定unuque="true",就是一 对一
ii)一对一双向外键关联: @OneToOne(mappedBy="对方的属性名")
-->只要有双向关联,必设mappedBy
iii)组件映射:(@Embedded)
iv)多对一单向:在多方设外键,在多方的po里加一个一方的对象引用,在get 前加@ManyToOne
vi)一对多单向:在一方po里加Set<多方类型> xx = new HashSet<多方类 型>(0),在get方法前加@OneToMany------>(默认情况会当ManyToMany, 生成三张表),所以要在@OneToMany下面加@JoinColumn (name="groupId")
vii)一对多双向:两个PO都加对方对象引用
22.cascade:all/persist(存储)/remove(删除) 级联操作
写在保存的一方,例如要保存A的同时,把B也存进去,则在A的PO类 里加上@ManyToOne(cascade={CascadeType.ALL}),即在getB的属 性上加cascade
23.cache:缓存
1)一级缓存:session级别,两个session会有两个缓存空间
2)二级缓存:sessionFactroy级

别 默认EhCacheProvider,打开二级缓存,在hibernate的配置文件里改配置 经常被访问,改动不大,数量有限的对象适合放在二级缓存,要添加一个jar包
3)查询缓存:如果要使用查询缓存,需要在配置文件里设置打开查询缓存,查询缓存依赖于二级缓存
24.事务并发处理
1)事务特性:ACID 原子性,一致性,独立性,持久性
2)脏读:读了另外一个事务的没提交的数据
不可重复读:在同一个事务里前后读出的数据不一致
幻读:插入和删除
--》数据库的事务隔离机制

相关主题
相关文档
最新文档