2017-01-11 102 views
1

我爲我的web項目使用hibernate(3.5.6-Final)。問題是,當我用其中一個用戶更改數據時,我看不到其他用戶的更改。我想第二個仍然從緩存工作。我用這種方法獲取數據(通訊類是我的實體類):休眠不與數據庫同步

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; 
    } 

而且我用下面的方法將數據保存:

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(); 
    } 

據我所知還沒有一個關閉緩存的方式(除非使用無狀態會話)。

有沒有人有任何想法我應該修改,以保持用戶的數據同步?

回答