我是使用Hibernate的新手。我的问题是:我正在开发一个桌面应用程序。此应用程序用于不同的计算机。 当计算机将新用户添加到我的数据库时,另一台计算机无法看到新用户,直到他没有关闭并再次打开该应用程序。
我认为这是因为sessionFactory不同。
我使用Hibernate来读取用户。
session = Settings.sessionFactory.openSession();
String selectSql = "select c.idClient, c.name FROM Clients c WHERE c.active=1 ORDER BY c.name";
Query query = session.createQuery(selectSql);
List<Object[]> listUsers = query.list();
for (Object[] data : listUsers)
{
cmbClient.addItem(new ItemCombobox(data[0].toString(), data[1].toString()));
}
答案 0 :(得分:1)
每次完成操作时尝试打开和关闭事务
V_A*V_A'
请参阅:https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/transactions.html
答案 1 :(得分:0)
首先是thougt:
我认为这是因为sessionFactory不同。
完全不正确。我更好地向您介绍了Java应用程序如何与数据库通信的一些信息。
如果进行查询,则从数据库中获取数据并将本地副本保存在jvm(Java虚拟机)内存中。因此,如果您想从数据库获取新的数据副本,您只需再次对数据库进行查询(在第二台计算机上添加用户操作完成后),而不是重置您的应用程序。
编辑: 注意:SessionFactory仅在整个应用程序中使用一次。
答案 2 :(得分:0)