最近,又复习了一下Hibnerate的知识,感觉有了一些小的收获,和大家分享一下。

1、不可以手动修改持久化对象的ID,可能造成缓存中的数据不准确。

2、Session接口中的saveOrUpdate()方法用来持久化对象。

(ps:瞬时对象执行save,游离对象执行update)

3、对于Session接口中的load和get方法都具有查询数据的功能。

(ps:如果指定的id数据库中不存在,load方法抛出异常,而get方法返回为null。)

get方法调用的时候,立即查询数据库。load方法调用时候,返回代理类,在对象被调用的时候,才去查询数据库。

4、执行过saveOrUpdate的操作时,建议使用session.flush()方法刷新缓存,保证数据的实时性。(ps:具体的情况具体分析,如果对数据的实时性要求不强,就不用调用该方法,从而减少与数据库的交互,提高系统性能。)

5、Hibernate3.x默认是延时加载。

6、延时加载只对load方法生效,对get方法无效。