diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java index 56b864d8d..4a1724f4e 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java @@ -59,6 +59,7 @@ import org.springframework.data.cassandra.core.query.Update.RemoveOp; import org.springframework.data.cassandra.core.query.Update.SetAtIndexOp; import org.springframework.data.cassandra.core.query.Update.SetAtKeyOp; import org.springframework.data.cassandra.core.query.Update.SetOp; +import org.springframework.data.cassandra.core.query.VectorSort; import org.springframework.data.convert.EntityWriter; import org.springframework.data.domain.Sort; import org.springframework.data.mapping.PersistentProperty; @@ -72,6 +73,7 @@ import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import com.datastax.oss.driver.api.core.CqlIdentifier; +import com.datastax.oss.driver.api.core.data.CqlVector; import com.datastax.oss.driver.api.core.metadata.schema.ClusteringOrder; import com.datastax.oss.driver.api.querybuilder.BindMarker; import com.datastax.oss.driver.api.querybuilder.QueryBuilder; @@ -688,24 +690,30 @@ public class StatementFactory { private StatementBuilder builder = StatementBuilder.of((Select) QueryBuilder.selectFrom(from), + cassandraConverter.getCodecRegistry()); - if (selectors.isEmpty()) { - select = QueryBuilder.selectFrom(getKeyspace(entity, from), from).all(); - } else { + builder.bind((statement, factory) -> { - List mappedSelectors = new ArrayList<>( - selectors.size()); - for (Selector selector : selectors) { - com.datastax.oss.driver.api.querybuilder.select.Selector orElseGet = selector.getAlias() - .map(it -> getSelection(selector).as(it)).orElseGet(() -> getSelection(selector)); - mappedSelectors.add(orElseGet); + Select select; + + if (selectors.isEmpty()) { + select = QueryBuilder.selectFrom(getKeyspace(entity, from), from).all(); + } else { + + List mappedSelectors = new ArrayList<>( + selectors.size()); + for (Selector selector : selectors) { + com.datastax.oss.driver.api.querybuilder.select.Selector orElseGet = selector.getAlias() + .map(it -> getSelection(selector, factory).as(it)).orElseGet(() -> getSelection(selector, factory)); + mappedSelectors.add(orElseGet); + } + + select = QueryBuilder.selectFrom(getKeyspace(entity, from), from).selectors(mappedSelectors); } - select = QueryBuilder.selectFrom(getKeyspace(entity, from), from).selectors(mappedSelectors); - } - - StatementBuilder select = statementFactory.select(Query.query(where("foo").in("bar")), - groupEntity); + StatementBuilder select = statementFactory.select(Query.query(where("foo").in("bar")), - groupEntity); + StatementBuilder select = statementFactory.select(Query.query(where("foo").in("bar")), - groupEntity); + StatementBuilder