0

在我的应用程序中,以下是场景,客户端请求 eventId。在服务器端,打开新会话-> 创建新的 eventId,并将其存储在数据库中,并将 eventId 发送给客户端-> 关闭会话。并且在使用该 eventId 的客户端向服务器发送 VO 之后。在服务器端,我们首先使用 session.get() 方法检查 eventId 是否存在。但问题是每次 session.get() 方法给出随机行为时,意味着有时它说 eventId 存在,有时不存在。检查 eventID 的代码是否存在:

    Session session = HibernateUtil.currentSession();
    Event event = (Event) session.get(Event.class,eventId);
    if(event != null){
       syso("Event is present");
    } else {
       syso("Event is not present");
    }

谁能解释什么是问题?这是由于会话保持打开或其他任何原因。

4

1 回答 1

0

您正在使用有时尚未提交到数据库的事务。

尝试

t=session.beginTransaction();
session.save(newEvent);
t.commit();
session.flush();

问候

于 2012-05-29T12:29:43.267 回答