①一对多的关联映射中set集合中fetch与lazy:
当fetch="join"的时候当加载teacher的时候会立即加载student,此时lazy="false",即延迟加载自动取消,即发出一条语句:
select
teacher0_.id as id0_1_,
teacher0_.name as name0_1_,
teacher0_.age as age0_1_,
students1_.teacherid as teacherid0_3_,
students1_.id as id3_,
students1_.id as id1_0_,
students1_.name as name1_0_,
students1_.age as age1_0_
from
t_teacher teacher0_
left outer join
t_studnet students1_
on teacher0_.id=students1_.teacherid
where
teacher0_.id=?
当fetch="select"的时候当加载teacher的时候会立即加载student,此时lazy="true",
select
teacher0_.id as id0_0_,
teacher0_.name as name0_0_,
teacher0_.age as age0_0_
from
t_teacher teacher0_
where
teacher0_.id=?
select
students0_.teacherid as teacherid0_1_,
students0_.id as id1_,
students0_.id as id1_0_,
students0_.name as name1_0_,
students0_.age as age1_0_
from
t_studnet students0_
where
students0_.teacherid=?
②hibernate缓存:
一级缓存:session级缓存是缓存实体对象的,不会缓存对象属性
③级联cascade与lazy,不要错误的认为各种加载会产生级联现象,级联操作仅仅存在各个关联对象中,1000个session对象在缓存中,只要有关系就会级联
④配置二级缓存的时候,要注意配置顺序,比如先是session-factory,再是property,mapping,class