我的问题是关于hibernate,实际上我正在使用hibernate和mysq处理Java EE应用程序。
一切都很好看。但是当我通过phpMyAdmin将数据插入我的数据库时,我仍有一个问题,除非我再次启动服务器(tomcat),否则无法通过hibernate立即访问它们。
答案 0 :(得分:0)
这是因为您的phpMyAdmin中的事务未提交。
在运行命令之前尝试在phpMyAdmin中运行此查询。
SET @@AUTOCOMMIT = 1;
或在查询结束时运行commit;
。
答案 1 :(得分:0)
我注意到我忘记为每个hibernate session.get(); 方法添加 transaction.commit(); ,所以不知何故它将数据保存在缓存中
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();
}
}