hibernate监听数据库更新

来源:百度知道 编辑:UC知道 时间:2024/05/07 01:09:06
用hibernate连接的数据库,当服务器端数据库发生更新时,客户端不能实时的读到服务器端的变化,如何更改hibernate或者设置session的某些方法,实现客户端可以实时的监听到服务器端的数据更新

这就是你在现实客户端信息的时候采用的查询方式不正确了吧!你应该是用的iterate吧!用list()就应该可以及时刷新吧!
实体对象查询
* N + 1问题,在默认情况下,使用query.iterate查询,有可以能出现N+1问题
所谓的N+1是在查询的时候发出了N+1条sql语句
1: 首先发出一条查询对象id列表的sql
N: 根据id列表到缓存中查询,如果缓存中不存在与之匹配的数据,那么会根据id发出相应的sql语句
* list和iterate的区别?
* list每次都会发出sql语句,list会向缓存中放入数据,而不利用缓存中的数据
* iterate:在默认情况下iterate利用缓存数据,但如果缓存中不存在数据有可以能出现N+1问题
====================
*
* 在默认情况下list每次都会向数据库发出查询对象的sql,除非配置查询缓存,所以下面的list操作
* 虽然在一级缓存中已经有了对象数据,但list默认情况下不会利用缓存,而再次发出sql
*
* 默认情况下,list会向缓存中放入数据,但不会利用数据
*
*/