我的问题是关于hibernate的,实际上我正在使用hibernate和mysq开发一个Java应用程序。
一切看起来都很好。但是,当我通过phpMyAdmin将数据插入数据库时,仍然有一个问题,除非再次启动服务器(tomcat),否则无法通过hibernate立即访问这些数据。
发布于 2014-07-08 04:41:08
我注意到,我忘了为每个hibernate transaction.commit();方法添加session.get();,因此它将数据保存在缓存中。
public List<User> getAllUsers(User user) throws Exception {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Criteria c = session.createCriteria(User.class).add(Restrictions.ne("idUser", user.getIdUser()));
List<User> users = c.list();
tx.commit();//i forget to add this
return users;
} catch (Exception e) {
if (tx != null) tx.rollback(); throw e;
} finally {
session.close();
}
}
发布于 2014-07-07 12:52:22
这是因为您在phpMyAdmin中的事务没有提交。
在运行命令之前,尝试在phpMyAdmin中运行此查询。
SET @@AUTOCOMMIT = 1;
或者在查询结束时运行commit;
。
https://stackoverflow.com/questions/24619436
复制相似问题