@Override public String toString() { return update.toString(); }
@Override public String updateEvent(EventKey eventKey, @Nullable RecordedEvent newEventData, @Nullable EventState newEventState, @Nullable String newEventType) throws EventStoreException { Update update = QueryBuilder.update(tableName); update.where(QueryBuilder.eq(ENTITY_ID, eventKey.getEntityId())) .and(QueryBuilder.eq(VERSION, eventKey.getVersion())) .ifExists(); if (newEventData != null) update.with(QueryBuilder.set(EVENT_DATA, createEventStr(newEventData))); if (newEventState != null) update.with(QueryBuilder.set(STATUS, newEventState.name())); if (newEventType != null) update.with(QueryBuilder.set(EVENT_TYPE, newEventType)); try { ResultSet execute = cassandraSession.execute(update); log.debug("Update Event, Result:" + execute.toString() + " Update: " + update.toString()); return execute.toString(); } catch (Exception e) { log.warn(e.getMessage(), e); throw new EventStoreException(e.getMessage(), e); } }
@Override public List<EntityEvent> markFail(String key) { Select select = QueryBuilder.select().from(tableNameByOps); select.where(QueryBuilder.eq(OP_ID, key)); List<Row> entityEventDatas = cassandraSession.execute(select, PagingIterable::all); return entityEventDatas.stream().map( CassandraViewQuery::convertToEntityEvent ).filter(entityEvent -> { try { Update update = QueryBuilder.update(tableName); update.where(QueryBuilder.eq(ENTITY_ID, entityEvent.getEventKey().getEntityId())) .and(QueryBuilder.eq(VERSION, entityEvent.getEventKey().getVersion())) .ifExists(); update.with(QueryBuilder.set(STATUS, "FAILED")); ResultSet execute = cassandraSession.execute(update); log.debug("Failure Mark Result:" + execute.toString() + " Update: " + update.toString()); return true; } catch (Exception e) { log.warn(e.getMessage(), e); return false; } }).collect(Collectors.toList()); }