Я новичок в фреймворке Lagom, и мне нужно знать, как правильно выполнить операцию удаления в этой фреймворке. Я занимаюсь разработкой на Java и проверил два подхода:
- когда я обрабатываю событие удаления, я устанавливаю состояние в Optional.empty (), но оно возвращает сбои nullPointerException, и строка в моем readSide (Cassandra DataBase) не удаляется
- Я добавляю поле «Состояние» к своей сущности, и когда я обрабатываю событие удаления, я передаю его в -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();
}