У меня есть следующий код
@Indexed
@PrimaryKeyColumn(name = "x", ordinal = 1, type = PrimaryKeyType.PARTITIONED)
@Column(value="x")
private String x;
@Indexed
@PrimaryKeyColumn(name = "code", ordinal = 2, type = PrimaryKeyType.PARTITIONED)
@Column(value="code")
private String code;
@Query(value = "select * from customers where code = ?0")
Optional<Customer> findByCode(String code);
Когда это выполняется, я получаю Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING
.
Есть ли способ избежать этого только из spring-data-cassandra
? Я не хочу добавлять ALLOW FILTERING
в свой запрос. Я попытался создать отдельный индекс для столбца code
, но это не решило проблему. Я думаю, что это останавливается в конфигурации данных Spring. Если я выполняю тот же запрос в cqlsh
, он работает.