嗨,我目前正在尝试设置我的 CQL Dao 以实现一些查询功能, 但是我找不到一种方法将任何对象的集合作为参数,因为我不断收到编解码器的此错误:
Codec not found for requested operation: [TEXT <-> java.util.List<java.lang.String>]
我尝试使用这个但它不起作用:
@Select(customWhereClause = "labels CONTAINS :labels", perPartitionLimit = "1")
fun dependenciesByLabels(@CqlName("labels") labels: Collection<String>): PagingIterable<Dependency>
您可能需要为您的集合定义一个编解码器,这里有一些示例: https://docs.datastax.com/en/developer/java-driver/3.5/manual/custom_codecs/#creating-custom-codecs-for-user-define-types-ud-ts 如果这没有帮助,请包含您的集合/类型定义。
Codec not found for requested operation: [TEXT <-> java.util.List<java.lang.String>]
因此,此错误消息意味着您正在尝试将定义为
TEXT
(UTF 字符串)的列映射到 Java List<String>
。
看起来您确实在应用程序端使用了集合,因此我会检查表定义并确保该列被定义为
List<TEXT>
。