我正在开发一个Java
应用程序,它会快速检查客户端数据库表中的更新,如果发现任何更新,则使用Hibernate
和MySQL
将其传输到服务器数据库。
MySQL Workbench
更改数据库表值,它就会正常工作,然后它将返回与以前一样的记录。如何在表中的外部更改中更新hibernate会话。
public List<com.ctpl.models.client.MasterTable> getAllClientMasterTableWithServerFlag() {
try {
clientSession = ClientHibernateUtil.getSessionFactory().openSession();
clientSession.flush();
Criteria criteria = clientSession.createCriteria(com.ctpl.models.client.MasterTable.class);
criteria.add(Restrictions.eq("serverFlag", 0));
List<com.ctpl.models.client.MasterTable> clientMasterTables = criteria.list();
clientSession.close();
return clientMasterTables;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
我在这里缺少什么?
答案 0 :(得分:2)
查看Session.clear()或逐出方法
参考这篇文章:
http://howtodoinjava.com/2013/07/01/understanding-hibernate-first-level-cache-with-example/
希望有所帮助
答案 1 :(得分:1)
我们只需要在hibernate中添加连接池,如下所示......
找到使用this example
轻松实现它的最佳方式