是因为在Spring Data Cassandra中,@Query注解是用于定义自定义查询的。然而,在Cassandra中,查询是通过使用CQL(Cassandra Query Language)来执行的,而不是通过使用@Query注解。
在Spring Data Cassandra中,可以使用@Repository注解将一个接口标记为Cassandra Repository。然后,可以使用Spring Data提供的默认方法来执行常见的CRUD操作,例如保存、更新、删除和查询。
对于自定义查询,可以使用CassandraTemplate或CassandraOperations来执行CQL查询。这些类提供了一些方法,例如execute、query和update,可以用于执行自定义的CQL语句。
以下是一个示例:
@Repository
public interface UserRepository extends CassandraRepository<User, UUID> {
@Query("SELECT * FROM users WHERE age > ?0 ALLOW FILTERING")
List<User> findByAgeGreaterThan(int age);
}
在上面的示例中,我们定义了一个自定义查询方法findByAgeGreaterThan,它使用@Query注解指定了CQL查询语句。然后,可以通过调用该方法来执行查询。
对于更复杂的查询,可以使用CassandraTemplate或CassandraOperations来执行自定义的CQL语句。这些类提供了更灵活的方法,可以执行各种类型的查询,并返回结果。
总结起来,@Query注解在Spring Cassandra Repository中不起作用,因为Cassandra使用CQL来执行查询,而不是通过@Query注解。要执行自定义查询,可以使用CassandraTemplate或CassandraOperations来执行CQL语句。
领取专属 10元无门槛券
手把手带您无忧上云