我们在一个带有hibernate的spring mvc 3项目上有一个jsp页面,它有两个显示两组用户的数据表。单击一个表中的用户名称会发送POST,将用户转移到另一个组,然后重新加载页面。最初加载页面时,两个表中的数据都会正确显示。但是,在单击用户以在组之间传输它们之后,该页面开始出现问题。即使DB已正确更新,以下用于将用户拉出数据库的方法也会在刷新页面时开始在两组值之间振荡。返回的一组值是正确的,而另一组是数据库更新之前的数据。根据需要多次刷新此页面只会无限制地在两组值之间来回跳转。
我们想知道什么可能导致hibernate查询在返回两组值之间振荡,即使这些hibernate查询之间没有以任何方式更改db。
Session hibernateSession = Utility.getSession();
try {
Query notIn = hibernateSession.createQuery("select endUserGroupEndUsers.endUserEndUserId from Endusergroupendusers endUserGroupEndUsers");
List<Endusers> notinlist = notIn.list();
} finally {
hibernateSession.close();
}
return notinlist;
这是包含getSession调用的hibernate的Utility类:
public class Utility {
private static final SessionFactory ourSessionFactory;
private static final ServiceRegistry serviceRegistry;
static {
try {
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
ourSessionFactory = configuration.buildSessionFactory(serviceRegistry);
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}
public static Session getSession() throws HibernateException {
return ourSessionFactory.openSession();
}
}