2017-01-11 2 views
1

Ich verwende Hibernate (3.5.6-Final) für mein Webprojekt. Das Problem ist, wenn ich Daten mit einem der Benutzer ändere, kann ich die Änderung mit dem anderen Benutzer nicht sehen. Ich denke, der zweite funktioniert immer noch aus dem Cache. Ich bin die Daten mit dieser Methode das Abrufen (Newsletter-Klasse ist meine Entity-Klasse):Hibernate nicht mit Datenbank synchronisiert

public static List<Newsletter> getNewsletters() { 
     List<Newsletter> newsletter = new ArrayList<Newsletter>(); 
     Session session = null; 
     try { 
      session = HibernateConfiguration.getSession(); 
      session.clear(); 
      Criteria criteria = session.createCriteria(Newsletter.class); 
      newsletter = criteria.list(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      if (session != null) { 
       session.close(); 
      } 
     } 
     return newsletter; 
    } 

Und ich die Daten mit der folgenden Methode zu speichern:

public static void save(Object o) throws Exception{ 
     Session session = HibernateConfiguration.getSession(); 
     Transaction transaction = session.beginTransaction(); 
     session.saveOrUpdate(o); 
     transaction.commit(); 
     session.evict(o); 
     session.close(); 
    } 

Wie ich es verstehe, ist kein Möglichkeit, den Cache zu deaktivieren (es sei denn, es wird eine statusfreie Sitzung verwendet).

Hat jemand eine Idee, was ich ändern soll, um die Daten der Benutzer synchron zu halten?

Antwort

Verwandte Themen