1.<class>元素的<cache>子元素表明hibernate会缓存当前对象的简单属性的值,但是它不会同时缓存该对象的集合属性.如果希望缓存集合属性的元素,必须在集合元素中加入<cache>子元素.
2.经测试发现,hibernate在保存querycache结果集的时候,会保存相关联的数据.当在user对象上设置缓存时.
假设:该条结果集的id为123
select * from user where name = 'sway'
hibernate不光保存该条sql语句的结果集,还会保存id=123的user对象(相当于select * from user where id=123).
3.奇怪的问题,代码如下
pMenuItem.getChilds().clear();hibernate延迟加载不能。
改成
if (!pMenuItem.getChilds().isEmpty()) {
pMenuItem.getChilds().clear();
}
hibernate开始调数据库。原因不明。