@select在没有参数而选择所有实体时引发错误(datastax java driver mapper)

s8vozzvw  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(401)

我正在使用datastax java驱动程序Map器。doc和github描述了使用不带参数的@select注解来选择表中所有行的可能性。
https://docs.datastax.com/en/developer/java-driver/4.4/manual/mapper/daos/select/
https://github.com/datastax/java-driver/pull/1285
所以我做了以下工作:

@Dao
public interface SchaduleJobDao {
(...)

   @Select
   @StatementAttributes (consistencyLevel = "LOCAL_QUORUM")
   PagingIterable<ScheduleJobEntity> all();
(..)

但是,eclipse在all()方法行中引发了一个错误:
“无效的参数列表:不使用自定义子句的select方法必须采用分区键组件的确切顺序(应为schedulejobentity的主键:[java.lang.string])”
根据上述参考资料,应该是允许的。
我检查了版本,在4.2之前这个特性应该可以工作,我使用的是4.4。所以它似乎与版本无关。我的pom文件:

<dependency>
   <groupId>com.datastax.oss</groupId>
   <artifactId>java-driver-mapper-processor</artifactId>
   <version>4.4.0</version>
</dependency>

我可能做错了什么?哪里有办法解决这个问题?
谢谢

6qftjkof

6qftjkof1#

我认为这可能是一个配置问题。你能检查一下你的pom没有引用其他地方的旧版本的处理器吗?特别是,另一种方法是 annotationProcessorPaths 编译器插件的一部分,如下所示。
我们有一个集成测试,涵盖了这个案例,我只是反复检查,它通过了4.4.0。另外,错误消息在我们引入该功能后略有变化,以前是说“必须采取分区关键组件”,现在是说“必须匹配”;你在引用以前的信息。

相关问题