Interface ReactivePreparedStatementCreator

All Known Subinterfaces:
ReactiveCassandraTemplate.ReactivePreparedStatementHandler
All Known Implementing Classes:
ReactiveCassandraTemplate.PreparedStatementHandler
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface ReactivePreparedStatementCreator
One of the two central callback interfaces used by the ReactiveCqlTemplate class. This interface creates a PreparedStatement given a ReactiveSession, provided by the ReactiveCqlTemplate class.

Implementations may either create new prepared statements or reuse cached instances. Implementations do not need to concern themselves with DriverExceptions that may be thrown from operations they attempt. The ReactiveCqlTemplate class will catch and handle DriverExceptions appropriately.

Classes implementing this interface should also implement the CqlProvider interface if it is able to provide the CQL it uses for PreparedStatement creation. This allows for better contextual information in case of exceptions.

Since:
2.0
Author:
Mark Paluch
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    reactor.core.publisher.Mono<com.datastax.oss.driver.api.core.cql.PreparedStatement>
    Create a statement in this session.
  • Method Details

    • createPreparedStatement

      reactor.core.publisher.Mono<com.datastax.oss.driver.api.core.cql.PreparedStatement> createPreparedStatement(ReactiveSession session) throws com.datastax.oss.driver.api.core.DriverException
      Create a statement in this session. Allows implementations to use PreparedStatements. The ReactiveCqlTemplate will attempt to cache the PreparedStatements for future use without the overhead of re-preparing on the entire cluster.
      Parameters:
      session - Session to use to create statement, must not be null.
      Returns:
      a prepared statement.
      Throws:
      com.datastax.oss.driver.api.core.DriverException - there is no need to catch DriverException that may be thrown in the implementation of this method. The ReactiveCqlTemplate class will handle them.