hibernate:session.get()随机行为

时间:2012-05-29 12:16:51

标签: java hibernate

在我的应用程序中,以下是方案,客户端请求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");
    }

任何人都可以解释什么是问题吗?这是因为会话保持开放或其他任何原因。

1 个答案:

答案 0 :(得分:0)

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

尝试

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

此致