有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Lagom框架中执行删除操作?

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

  1. 处理删除事件时,我将状态设置为可选。空()但它返回nullPointerException崩溃,并且我的readSide(Cassandra数据库)中的行未被删除
  2. 我将状态字段添加到实体中,当我处理删除事件时,我将其传递给-1。当我引用我的实体时,我在状态上进行测试。现在和现状!=-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) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    我终于找到了问题所在。在我的事件课上处理得很糟糕,我使用了先决条件。在我的变量上选中NOTNULL,这显然是错误的。我从代码中删除了这个xpression,一切正常