我遇到了一个与休眠问题,问题是当我保存在数据库中,但是当我尝试找到这个最后一个插入,他不找到,直到我在数据库中做了一些动作,像我查找或删除其他数据。休眠保存在数据库中的问题
这是我如何保存:
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