Currently forceQuote only supported annotation level. But no one want to use @Column(forceQuote=true) on every property on project.
If we don't use it, it will lowercase everywhere. Until now it was fine. But we need to use spark as filtering, aggregation engine. But spark don't lowercase any column name.
If spring-data-cassandra quoted every column name everywhere, Everyone will be happy.
We need something like spring.data.cassandra.forceQuoteEverywhere=true global configuration property for just for cassandra's silly behaviour
That's an extension we would have to introduce in the mapping meta-model. We had the idea of introducing a NamingStrategy (see DATACASS-84) for quite a while that would accept the property name/column name and turn it into a CqlIdentifier. It would make sense to put it into CassandraMappingContext and associate BasicCassandraPersistentProperty with a NamingStrategy.
Spring Data already comes with a org.springframework.data.mapping.model.FieldNamingStrategy, so we would need to wrap that one into a Cassandra-specific strategy that enforces quoting for your particular case