Objectify не хранит синхронно, даже сейчас

Мой сервлет должен выполнить следующее: когда пользователь регистрируется на месте, я проверяю,s в настоящее время где-то зарегистрирован (даже если это одно и то же место), если это так, отмените его регистрацию и зарегистрируйте его еще раз.



У меня есть следующий код, который ямы упростили, чтобы показать мою проблему:

    Date tempDate = new Date();


    Visit v = ofy().load().type(Visit.class)
            .filter(Visit.USER_ID, 5L)
            .filter(Visit.EXIT_DATE, null).first().get();

    if(v != null)
        exitVenue(5L, 7L, tempDate);

    Visit visit = new Visit(5L, 7L, tempDate);      
    ofy().save().entity(visit).now();

    Date tempDate2 = new Date();


    Visit v2 = ofy().load().type(Visit.class)
            .filter(Visit.USER_ID, 5L)
            .filter(Visit.EXIT_DATE, null).first().get();

    if(v2 != null)
        exitVenue(5L, 7L, tempDate2);

    Visit visit2 = new Visit(5L, 7L, tempDate2);        
    ofy().save().entity(visit2).now();
}


public void exitVenue(Long userID, Long venueID, Date exitDate) {

    Visit visit = ofy().load().type(Visit.class)
            .filter(Visit.USER_ID, userID)
            .filter(Visit.VENUE_ID, venueID)
            .filter(Visit.EXIT_DATE, null).first().get();

    if(visit == null){
        log.info("ERROR : User " + userID + " exited venue " + venueID + ", but Visit was not found");
        return;
    }
    visit.setExitDate(exitDate);

    ofy().save().entity(visit).now();
}

проблема в том, что когда я выполняю всю эту операцию во второй раз, он не всегда обнаруживает, что в хранилище данных уже есть визит (каждый второй тест или около того). И я'я в замешательстве несейчас()' Предположим, хранить его сразу и только потом продолжать работать?

Большое спасибо за вашу помощь, Дэн

Ответы на вопрос(1)

Ваш ответ на вопрос