/** * Create a new {@link AggregateCatalogue} that uses Cassandra for persistence. * @param cassandraTemplate The {@link CassandraTemplate} to use to execute Cassandra queries. * @param bucketCount The number of buckets to use to distribute the catalogue data over multiple rows. * @return The constructed {@link AggregateCatalogue}. */ public static AggregateCatalogue create(CassandraTemplate cassandraTemplate, int bucketCount) { PreparedStatement insertStatement = cassandraTemplate.getSession().prepare( "INSERT INTO Catalogue (aggregateType, bucket, aggregateId) VALUES (?, ?, ?)"); PreparedStatement deleteStatement = cassandraTemplate.getSession().prepare( "DELETE FROM Catalogue WHERE aggregateType = ? AND bucket = ? AND aggregateId = ?"); return new CassandraAggregateCatalogue(bucketCount, cassandraTemplate, insertStatement, deleteStatement); }
/** * Create a new {@link AggregateCatalogue} that uses Cassandra for persistence. * @param cassandraTemplate The {@link CassandraTemplate} to use to execute Cassandra queries. * @param bucketCount The number of buckets to use to distribute the catalogue data over multiple rows. * @return The constructed {@link AggregateCatalogue}. */ public static AggregateCatalogue create(CassandraTemplate cassandraTemplate, int bucketCount) { PreparedStatement insertStatement = cassandraTemplate.getSession().prepare( "INSERT INTO Catalogue (aggregateType, bucket, aggregateId) VALUES (?, ?, ?)"); PreparedStatement deleteStatement = cassandraTemplate.getSession().prepare( "DELETE FROM Catalogue WHERE aggregateType = ? AND bucket = ? AND aggregateId = ?"); return new CassandraAggregateCatalogue(bucketCount, cassandraTemplate, insertStatement, deleteStatement); }
/** * Create an {@link EventPersister} that writes events into Cassandra using the supplied {@link CassandraTemplate} * and serialisation {@link Function}. * @param cassandraTemplate The {@link CassandraTemplate} to use to execute Cassandra queries. * @param serialiser The serialiser to use to serialise event data. * @return The constructed {@link EventPersister}. */ public static EventPersister create(CassandraTemplate cassandraTemplate, Function<Object, String> serialiser) { return new CassandraEventPersister(cassandraTemplate, prepareInsert(cassandraTemplate.getSession()), serialiser); }
/** * Create an {@link EventPersister} that writes events into Cassandra using the supplied {@link CassandraTemplate} * and serialisation {@link Function}. * @param cassandraTemplate The {@link CassandraTemplate} to use to execute Cassandra queries. * @param serialiser The serialiser to use to serialise event data. * @return The constructed {@link EventPersister}. */ public static EventPersister create(CassandraTemplate cassandraTemplate, Function<Object, String> serialiser) { return new CassandraEventPersister(cassandraTemplate, prepareInsert(cassandraTemplate.getSession()), serialiser); }