如何在 Lagom Framework 中进行删除操作?

How can I proceed a delete operation in Lagom Framework?

我是Lagom框架的新手,我需要知道在这个框架中进行删除操作的正确方法是什么。我使用 Java 开发并测试了两种方法:

  1. 当我处理删除事件时,我将状态设置为 Optional.empty () 但它 returns nullPointerException 崩溃并且我的 readSide(Cassandra 数据库)中的行未被删除
  2. 我向我的实体添加了一个状态字段,当我处理删除事件时,我将它传递给 -1。当我提到我的实体时,我会测试 State.present 和状态! = -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();
}

第一种方法是正确的,但你应该正确处理读取端的空选项

终于找到问题了。在我的事件 class 中处理不当,我在我的变量上使用了 Preconditions.checkNotNull,这显然是错误的。我从我的代码中删除了这个 xpression,一切正常