The repository class
public class CassandraColumnRepository extends AbstractColumnRepository {
@Inject
private ColumnEntityConverter converter;
@Inject
private CassandraColumnFamilyManager manager;
@Inject
private ColumnWorkflow workflow;
@Inject
private ColumnEventPersistManager eventManager;
@Override
protected ColumnEntityConverter getConverter() {
return converter;
}
@Override
protected ColumnFamilyManager getManager() {
return manager;
}
@Override
protected ColumnWorkflow getFlow() {
return workflow;
}
@Override
protected ColumnEventPersistManager getEventManager() {
return eventManager;
}
public <T> T save(T entity, ConsistencyLevel level) {
Objects.requireNonNull(entity, "entity is required");
Objects.requireNonNull(level, "level is required");
UnaryOperator<ColumnEntity> save = e -> manager.save(e, level);
return workflow.flow(entity, save);
}
public <T> T save(T entity, Duration ttl, ConsistencyLevel level) throws NullPointerException {
Objects.requireNonNull(entity, "entity is required");
Objects.requireNonNull(level, "level is required");
UnaryOperator<ColumnEntity> save = e -> manager.save(e, ttl, level);
return workflow.flow(entity, save);
}
public <T> List<T> cql(String query) throws NullPointerException {
Objects.requireNonNull(query, "query is required");
List<ColumnEntity> entities = manager.cql(query);
return entities.stream().map(converter::toEntity).map(c -> (T) c)
.collect(Collectors.toList());
}
public void delete(ColumnDeleteQuery query, ConsistencyLevel level) throws NullPointerException {
manager.delete(query, level);
}
}Last updated