@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); }
@Before public void setUp() { testSubject = new Oracle11EventTableFactory(); eventSchema = new EventSchema(); try { connection = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/xe", "system", "oracle"); } catch (SQLException e) { assumeNoException("Ignoring test. Machine does not have a local Oracle 11 instance running", e); } }
@Test public void testCreateDomainEventTable() throws Exception { // test passes if no exception is thrown testSubject.createDomainEventTable(connection, eventSchema) .execute(); connection.prepareStatement("SELECT * FROM " + eventSchema.domainEventTable()) .execute(); connection.prepareStatement("DROP TABLE " + eventSchema.domainEventTable()) .execute(); connection.prepareStatement("DROP SEQUENCE " + eventSchema.domainEventTable() + "_seq") .execute(); }
@Test public void testCreateSnapshotEventTable() throws Exception { // test passes if no exception is thrown testSubject.createSnapshotEventTable(connection, eventSchema) .execute(); connection.prepareStatement("SELECT * FROM " + eventSchema.snapshotTable()) .execute(); connection.prepareStatement("DROP TABLE " + eventSchema.snapshotTable()) .execute(); } }
@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 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 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 " + 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); }