@@没有参数时选择引发错误,而是选择所有实体(Datastax Java驱动程序映射器)

问题描述 投票:1回答:1

我正在使用Datastax Java驱动程序映射器。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()方法行中引发了错误:

“无效的参数列表:不使用自定义子句的选择方法必须采用完全相同的分区键组件(ScheduleJobEntity的预期PK:[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>

我可能做错了什么?在哪里可以解决这个问题?

谢谢

java cassandra datastax datastax-java-driver
1个回答
0
投票

我认为这可能是配置问题。您能检查一下您的POM是否在其他地方没有引用较旧版本的处理器吗?特别是,提供此功能的另一种方法是在编译器插件的annotationProcessorPaths部分,如here所示。

我们有一个integration test涵盖了这种情况,我只是仔细检查了它是否在4.4.0中通过。同样,在我们引入该功能后,错误消息略有变化,它曾经说“必须使用分区键组件”,现在却说“必须match”;您引用的是旧邮件。

© www.soinside.com 2019 - 2024. All rights reserved.