Eu sou novo no uso do Hibernate. E meu problema é: estou desenvolvendo um aplicativo desktop. Este aplicativo é usado em diferentes computadores. Quando um computador adiciona um novo usuário ao meu banco de dados, o outro computador não pode ver o novo usuário até que ele não feche e abra o aplicativo novamente.
Eu entendo que é porque a sessionFactory é diferente.
Eu uso o Hibernate para ler os usuários.
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()));
}
tente abrir e fechar uma transação sempre que terminar uma operação
// Non-managed environment idiom Session sess = factory.openSession(); Transaction tx = null; try {
tx = sess.beginTransaction();
// do some work
...
tx.commit(); } catch (RuntimeException e) {
if (tx != null) tx.rollback();
throw e; // or display error message } finally {
sess.close(); }
Veja: https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/transactions.html
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras