Query queryObject = xxDAO.getSession().createQuery(queryString);
List list = queryObject.list();
Iterator iterator = list.iterate();
你试试用list
不敢保证能行
不过我用的都是list
或许是地方的事
List list = queryObject.list();
Iterator iterator = list.iterate();
你试试用list
不敢保证能行
不过我用的都是list
或许是地方的事
新session里再查.
另外,你说得调用flush(),应该是在那里调用,我修改数据库记录的方式非常简单,只是在外部数据库连接工具中修改,并未通过程序修改记录,本就是为了简单的测试。
IE-》属性-》删除文件
有可能是IE的事,我以前也碰到过。
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration><session-factory>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/goosign
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">MySQL_JK</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.password">root</property>
<mapping resource="com/hibernate/table/SysMail.hbm.xml" /></session-factory></hibernate-configuration>
上面是我的hibernate.cfg.xml文件,不知如何设置hibernate.cache,请教了!
session.clear()//清空session的缓存
或者试一下手动与数据库同步session.refresh();
session.evict()//清指定的实体
session.clear()//清空session的缓存
如果你每次访问都关闭Session的话就不存在这样的问题了,如果每次关闭Session,一级缓存就不起任何的做用了。
如果是某几个表有这样的需求, 那么你可以如上 session.evict()//清指定的实体, 每次查询都套上这个, 这么做用hibernate就失去很大意义了, 等于JDBC加DTO方式