还是hibernate的相关知识点
一 、hibernate中持久化类的状态
- 瞬时态
没有持久化标识OID(assigned 方式除外),没有被session所管理 - 持久态
有持久化标识OID,已被纳入session的管理 -
托管态 有持久化标识OID,但是没被纳入session管理(已经被管理过,session已经关闭)
二、Hibernate的主键自增策略
整型自增:
hibernate提供的自增 :increment
数据库提供的自增:
MySQL: identity
Oracle: sequence
根据数据库自适应:native
字符串自增:uuid
三、Cascade(级联操作)和inverse(关系维护反转)
Cascade:
What:两个对象之间有关系(1:n,n:n,1:1),通过一个对象操作(crud)另一个对象。比如保存a的同时,同时保存b。那么a对b的操作就是级联操作。
How:
- save-update:A 保存,同时保存 B
- delete:删除 A,同时删除 B,AB 都不存在(操作应该是持久态)
- delete-orphan:孤儿删除,解除关系,同时将 B 删除,A 存在的。 如果需要配置多项,使用逗号分隔。
- all : save-update 和 delete 整合
- all-delete-orphan : 三个整合
inverse:
What:是否将关系维护的权限反转给对方。其实就是外键的值是否需要维护。
How:
True: 表示放弃维护外键
False:表示需要维护外键