怎样关闭hibernate对数据的缓冲?

lzmch
03-08-02 1 134

我在update和delete数据(然后用相同的id号重新插入不同的数据)后,在flush()和commit()后如果不做session.close(),直接reconnect(),refresh(数据),然后load(),发现还是原来的数据,但是数据库中已经改过.
我只所以不关闭session,是为了在jsp页面中还要使用,关闭的话,对于lazy方式的数据将拿不到!所以,我想关闭hibernate对数据的缓冲,让他每次做load()或类似动作的时候,都是真正的用数据库中的数据,而不是id相同就用缓冲的数据!

yehs220
2003-08-05 15:20

我觉得你的做法有些问题,你可以做一个servlet filter,
在处理完jsp页面后再close掉当前的session,这是Hibernate
推荐的做法。

如果要把一个object从session的缓存中清除,可以调用
session.evict(Object)。