0

私のアプリケーションでは、イベント ID に対するクライアント リクエストのシナリオを次に示します。サーバー側では、新しいセッションを開く->新しいイベントIDを作成し、データベースに保存し、そのイベントIDがクライアントに送信されます->セッションを閉じます。その後、その 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 に答える