我遇到了一個與休眠問題,問題是當我保存在數據庫中,但是當我嘗試找到這個最後一個插入,他不找到,直到我在數據庫中做了一些動作,像我查找或刪除其他數據。休眠保存在數據庫中的問題
這是我如何保存:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.saveOrUpdate(o);
session.saveOrUpdate(o1); // o and o1 are two differents objects
tx.commit();
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
}
這是我試圖找到在數據庫中插入後:
public List getUserNames(int startID, int endID) {
List<User> userList = null;
try {
org.hibernate.Transaction tx = session.beginTransaction();
Query q = session.createQuery("select u from User u ");
userList = (List<User>) q.list();
} catch (Exception e) {
e.printStackTrace();
}
return userList;
}
我嘗試了很多東西,但沒有做出區別,像將saveOrUpdate更改爲合併或保存,但並沒有改變這一點。 感謝任何可以幫助的人。
嘗試在保存功能中打印異常以查看保存是否給出了錯誤 –
您是否在兩種方法中共享'session'?它是否是承載這兩種方法的類的成員(這會很糟糕)?這是針對單個線程還是更多? –
我的保存沒有任何錯誤,我的插入工作,當我到數據庫終端顯示這最後插入時,他正常顯示,但是當我試圖找到他時,他沒有找到 – sams15