Как я могу продолжить операцию удаления в Lagom Framework? - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в фреймворке Lagom, и мне нужно знать, как правильно выполнить операцию удаления в этой фреймворке. Я занимаюсь разработкой на Java и проверил два подхода:

  1. когда я обрабатываю событие удаления, я устанавливаю состояние в Optional.empty (), но оно возвращает сбои nullPointerException, и строка в моем readSide (Cassandra DataBase) не удаляется
  2. Я добавляю поле «Состояние» к своей сущности, и когда я обрабатываю событие удаления, я передаю его в -1. Когда я ссылаюсь на свою сущность, я проверяю State.present и status! = -1 чтобы убедиться, что сущность и удалена. Для readSide строка удаляется правильно

С точки зрения логики, я думаю, что второй подход является наиболее логичным, но я хочу знать, есть ли хорошая практика, что платформа Lagom предлагает разработчикам выполнять операции удаления

РЕДАКТИРОВАТЬ 1 Это мой код ReadSideHandler, как мне правильно обработать пустую опцию

@Override
public ReadSideHandler<AuthenticationEvent> buildHandler() {
    return readSide.<AuthenticationEvent>builder("authenticationEventOffset")
            .setGlobalPrepare(this::createTables)
            .setPrepare(tag -> prepareStatements())
            .setEventHandler(AuthenticationLoginEvent.class,
                    e -> insertAuthentication(e.getAuthentication()))
            .setEventHandler(AuthenticationLogoutEvent.class, e -> deleteAuthentication(e.getAccessToken()))
            .build();
}

Ответы [ 2 ]

0 голосов
/ 10 июля 2018

Я наконец нашел проблему. это была плохая обработка в моем классе событий, я использовал Preconditions.checkNotNull в моей переменной, что, очевидно, неправильно. Я удалил это выражение из моего кода, и все работает нормально

0 голосов
/ 08 июля 2018

Первый подход верен, но вы должны правильно обработать пустой параметр на стороне чтения

...