reflush操作会使数据库记录与session缓存记录保持一致,也就是是说会强制向数据库发送一条select语句。
看一下测试
public void test(){
News news = (News) session.get(News.class, 1);
System.out.println(news);
session.refresh(news);
System.out.println(news);
}
我们在session.refresh()处加个断点,然后更改了数据表的值,看到发送了一条select语句。如果不改呢?
也会发送一条sql语句,也就是说refresh发送select语句是强制的。