Skip to content

Commit 86f8528

Browse files
committed
Polishing.
Reflect that prepared statements do not inherit query options to avoid cache pollution. See #1335
1 parent 515bffc commit 86f8528

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -982,6 +982,9 @@ public PreparedStatementHandler(Statement<?> statement) {
982982

983983
@Override
984984
public PreparedStatement createPreparedStatement(CqlSession session) throws DriverException {
985+
986+
// Note that prepared statement settings like the keyspace are gone because using the prepare method with a
987+
// statement object causes cache pollution
985988
return session.prepare(statement.getQuery());
986989
}
987990

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveCassandraTemplate.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -966,6 +966,9 @@ public PreparedStatementHandler(Statement<?> statement) {
966966

967967
@Override
968968
public Mono<PreparedStatement> createPreparedStatement(ReactiveSession session) throws DriverException {
969+
970+
// Note that prepared statement settings like the keyspace are gone because using the prepare method with a
971+
// statement object causes cache pollution
969972
return session.prepare(statement.getQuery());
970973
}
971974

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraTemplateIntegrationTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,11 +492,14 @@ void selectByQueryWithNonExistingKeyspaceShouldThrowThatKeyspaceDoesNotExists()
492492

493493
User user = new User("heisenberg", "Walter", "White");
494494
template.insert(user);
495+
template.setUsePreparedStatements(false);
495496

496497
Query query = Query.query(where("id").is("heisenberg")).queryOptions(queryOptions);
497498
assertThatThrownBy(() -> assertThat(template.select(query, User.class)).isEmpty())
498499
.isInstanceOf(CassandraInvalidQueryException.class)
499500
.hasMessageContaining("Keyspace 'non_existing' does not exist");
501+
502+
template.setUsePreparedStatements(true);
500503
}
501504

502505
@Test // DATACASS-182

0 commit comments

Comments
 (0)