/** * Extracts the next snapshot entry from the given {@code resultSet}. * * @param resultSet The results of a query for a snapshot of an aggregate. * @return The next snapshot data. * * @throws SQLException when an exception occurs while creating the event data. */ protected DomainEventData<?> getSnapshotData(ResultSet resultSet) throws SQLException { return new GenericDomainEventEntry<>(resultSet.getString(schema.typeColumn()), resultSet.getString(schema.aggregateIdentifierColumn()), resultSet.getLong(schema.sequenceNumberColumn()), resultSet.getString(schema.eventIdentifierColumn()), readTimeStamp(resultSet, schema.timestampColumn()), resultSet.getString(schema.payloadTypeColumn()), resultSet.getString(schema.payloadRevisionColumn()), readPayload(resultSet, schema.payloadColumn()), readPayload(resultSet, schema.metaDataColumn())); }
/** * Extracts the next domain event entry from the given {@code resultSet}. * * @param resultSet The results of a query for domain events of an aggregate. * @return The next domain event. * * @throws SQLException when an exception occurs while creating the event data. */ protected DomainEventData<?> getDomainEventData(ResultSet resultSet) throws SQLException { return new GenericDomainEventEntry<>(resultSet.getString(schema.typeColumn()), resultSet.getString(schema.aggregateIdentifierColumn()), resultSet.getLong(schema.sequenceNumberColumn()), resultSet.getString(schema.eventIdentifierColumn()), readTimeStamp(resultSet, schema.timestampColumn()), resultSet.getString(schema.payloadTypeColumn()), resultSet.getString(schema.payloadRevisionColumn()), readPayload(resultSet, schema.payloadColumn()), readPayload(resultSet, schema.metaDataColumn())); }
/** * Returns a comma separated list of domain event column names to select from an event or snapshot entry. * * @return comma separated domain event column names. */ protected String domainEventFields() { return String.join(", ", schema.eventIdentifierColumn(), schema.timestampColumn(), schema.payloadTypeColumn(), schema.payloadRevisionColumn(), schema.payloadColumn(), schema.metaDataColumn(), schema.typeColumn(), schema.aggregateIdentifierColumn(), schema.sequenceNumberColumn()); }
readTimeStamp(resultSet, schema.timestampColumn()), resultSet.getString(schema.payloadTypeColumn()), resultSet.getString(schema.payloadRevisionColumn()), readPayload(resultSet, schema.payloadColumn()), readPayload(resultSet, schema.metaDataColumn())
String.join(", ", schema.eventIdentifierColumn(), schema.aggregateIdentifierColumn(), schema.sequenceNumberColumn(), schema.typeColumn(), schema.timestampColumn(), schema.payloadTypeColumn(), schema.payloadRevisionColumn(), schema.payloadColumn(), schema.metaDataColumn()) + ") VALUES (?,?,?,?,?,?,?,?,?)";
String.join(", ", schema.eventIdentifierColumn(), schema.aggregateIdentifierColumn(), schema.sequenceNumberColumn(), schema.typeColumn(), schema.timestampColumn(), schema.payloadTypeColumn(), schema.payloadRevisionColumn(), schema.payloadColumn(), schema.metaDataColumn()) + ") VALUES (?,?,?,?,?,?,?,?,?)";
@Override public PreparedStatement createSnapshotEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE " + schema.snapshotTable() + " (\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " NUMBER(19) NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn() + "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; return connection.prepareStatement(sql); }
@Override public PreparedStatement createSnapshotEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE IF NOT EXISTS " + schema.snapshotTable() + " (\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " BIGINT NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn() + "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; return connection.prepareStatement(sql); }
@Override public PreparedStatement createDomainEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE " + schema.domainEventTable() + " (\n" + schema.globalIndexColumn() + " NUMBER(19) NOT NULL,\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " NUMBER(19) NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255),\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.globalIndexColumn() + "),\n" + "UNIQUE (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn() + "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; try (PreparedStatement pst = connection.prepareStatement(sql)) { pst.execute(); } Oracle11Utils.simulateAutoIncrement(connection, schema.domainEventTable(), schema.globalIndexColumn()); return Oracle11Utils.createNullStatement(connection); }
@Override public PreparedStatement createDomainEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE IF NOT EXISTS " + schema.domainEventTable() + " (\n" + schema.globalIndexColumn() + " " + idColumnType() + " NOT NULL,\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " BIGINT NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255),\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.globalIndexColumn() + "),\n" + "UNIQUE (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn() + "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; return connection.prepareStatement(sql); }
/** * Extracts the next snapshot entry from the given {@code resultSet}. * * @param resultSet The results of a query for a snapshot of an aggregate. * @return The next snapshot data. * @throws SQLException when an exception occurs while creating the event data. */ protected DomainEventData<?> getSnapshotData(ResultSet resultSet) throws SQLException { return new GenericDomainEventEntry<>(resultSet.getString(schema.typeColumn()), resultSet.getString(schema.aggregateIdentifierColumn()), resultSet.getLong(schema.sequenceNumberColumn()), resultSet.getString(schema.eventIdentifierColumn()), readTimeStamp(resultSet, schema.timestampColumn()), resultSet.getString(schema.payloadTypeColumn()), resultSet.getString(schema.payloadRevisionColumn()), readPayload(resultSet, schema.payloadColumn()), readPayload(resultSet, schema.metaDataColumn())); }
/** * Extracts the next domain event entry from the given {@code resultSet}. * * @param resultSet The results of a query for domain events of an aggregate. * @return The next domain event. * @throws SQLException when an exception occurs while creating the event data. */ protected DomainEventData<?> getDomainEventData(ResultSet resultSet) throws SQLException { return new GenericDomainEventEntry<>(resultSet.getString(schema.typeColumn()), resultSet.getString(schema.aggregateIdentifierColumn()), resultSet.getLong(schema.sequenceNumberColumn()), resultSet.getString(schema.eventIdentifierColumn()), readTimeStamp(resultSet, schema.timestampColumn()), resultSet.getString(schema.payloadTypeColumn()), resultSet.getString(schema.payloadRevisionColumn()), readPayload(resultSet, schema.payloadColumn()), readPayload(resultSet, schema.metaDataColumn())); }
/** * Extracts the next domain event entry from the given {@code resultSet}. * * @param resultSet The results of a query for domain events of an aggregate. * @return The next domain event. * * @throws SQLException when an exception occurs while creating the event data. */ protected DomainEventData<?> getDomainEventData(ResultSet resultSet) throws SQLException { return new GenericDomainEventEntry<>(resultSet.getString(schema.typeColumn()), resultSet.getString(schema.aggregateIdentifierColumn()), resultSet.getLong(schema.sequenceNumberColumn()), resultSet.getString(schema.eventIdentifierColumn()), readTimeStamp(resultSet, schema.timestampColumn()), resultSet.getString(schema.payloadTypeColumn()), resultSet.getString(schema.payloadRevisionColumn()), readPayload(resultSet, schema.payloadColumn()), readPayload(resultSet, schema.metaDataColumn())); }
/** * Returns a comma separated list of domain event column names to select from an event or snapshot entry. * * @return comma separated domain event column names. */ protected String domainEventFields() { return String.join(", ", schema.eventIdentifierColumn(), schema.timestampColumn(), schema.payloadTypeColumn(), schema.payloadRevisionColumn(), schema.payloadColumn(), schema.metaDataColumn(), schema.typeColumn(), schema.aggregateIdentifierColumn(), schema.sequenceNumberColumn()); }
/** * Returns a comma separated list of domain event column names to select from an event or snapshot entry. * * @return comma separated domain event column names. */ protected String domainEventFields() { return String.join(", ", schema.eventIdentifierColumn(), schema.timestampColumn(), schema.payloadTypeColumn(), schema.payloadRevisionColumn(), schema.payloadColumn(), schema.metaDataColumn(), schema.typeColumn(), schema.aggregateIdentifierColumn(), schema.sequenceNumberColumn()); }
@Override public PreparedStatement createSnapshotEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE " + schema.snapshotTable() + " (\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " NUMBER(19) NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn() + "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; return connection.prepareStatement(sql); }
@Override public PreparedStatement createSnapshotEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE " + schema.snapshotTable() + " (\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " NUMBER(19) NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn() + "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; return connection.prepareStatement(sql); }
@Override public PreparedStatement createSnapshotEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE IF NOT EXISTS " + schema.snapshotTable() + " (\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " BIGINT NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn() + "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; return connection.prepareStatement(sql); }
@Override public PreparedStatement createDomainEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE IF NOT EXISTS " + schema.domainEventTable() + " (\n" + schema.globalIndexColumn() + " " + idColumnType() + " NOT NULL,\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " BIGINT NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255),\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.globalIndexColumn() + "),\n" + "UNIQUE (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn() + "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; return connection.prepareStatement(sql); }
@Override public PreparedStatement createDomainEventTable(Connection connection, EventSchema schema) throws SQLException { String sql = "CREATE TABLE IF NOT EXISTS " + schema.domainEventTable() + " (\n" + schema.globalIndexColumn() + " " + idColumnType() + " NOT NULL,\n" + schema.aggregateIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.sequenceNumberColumn() + " BIGINT NOT NULL,\n" + schema.typeColumn() + " VARCHAR(255),\n" + schema.eventIdentifierColumn() + " VARCHAR(255) NOT NULL,\n" + schema.metaDataColumn() + " " + payloadType() + ",\n" + schema.payloadColumn() + " " + payloadType() + " NOT NULL,\n" + schema.payloadRevisionColumn() + " VARCHAR(255),\n" + schema.payloadTypeColumn() + " VARCHAR(255) NOT NULL,\n" + schema.timestampColumn() + " VARCHAR(255) NOT NULL,\n" + "PRIMARY KEY (" + schema.globalIndexColumn() + "),\n" + "UNIQUE (" + schema.aggregateIdentifierColumn() + ", " + schema.sequenceNumberColumn()+ "),\n" + "UNIQUE (" + schema.eventIdentifierColumn() + ")\n" + ")"; return connection.prepareStatement(sql); }