Java 数据库中hibernate保存的问题
我在hibernate中遇到了一个问题,问题是当我在数据库中保存时,但当我尝试查找最后一个插入时,他无法找到,直到我在数据库中执行了一些操作,例如查找或删除其他数据 我就是这样保存的:Java 数据库中hibernate保存的问题,java,mysql,hibernate,hql,Java,Mysql,Hibernate,Hql,我在hibernate中遇到了一个问题,问题是当我在数据库中保存时,但当我尝试查找最后一个插入时,他无法找到,直到我在数据库中执行了一些操作,例如查找或删除其他数据 我就是这样保存的: SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); session = sessionFactory.openSession(); Transaction tx = n
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;
}
public List getUserNames(int-startID,int-endID){
List userList=null;
试一试{
org.hibernate.Transaction tx=session.beginTransaction();
Query q=session.createQuery(“从用户u中选择u”);
userList=(List)q.List();
}捕获(例外e){
e、 printStackTrace();
}
返回用户列表;
}
我尝试了很多方法,但没有任何效果,比如更改saveOrUpdate以合并或只是保存,但没有任何效果更改这些方法。
感谢所有能够提供帮助的人。不确定,但是Hibernate在您开始迭代结果(在您的案例中是userList)之前不会执行查询 在关闭会话之前尝试迭代userList
请参见此处的示例:在将数据保存到数据库之前,请尝试
刷新会话状态。通常不建议这样做,因为它本身会导致不保存会话对象以前获取的数据。stacktrace将有助于提供apt解决方案。请尝试在保存功能中打印异常,以查看保存是否出现任何错误您正在跨这两种方法共享会话
?它是承载这两个方法的类的成员吗(这是不好的)?这是用于单线程还是多线程?我的保存没有任何错误,我的插入有效,当我转到数据库终端显示最后一次插入时,他正常出现,但当我试图找到他时,他没有找到sorry@MarcelStör我不知道我是否理解你的问题,但我的插入方法在一个类中,我的搜索又开始了,我试过了,但没用,我试过之后,我的登录页面就没用了,我也试过了,你怎么说,我不能再插入了