未为请求的操作set <varchar> <-> java.util.Set找到Spring Data Cassandra编解码器

时间:2018-07-26 14:14:28

标签: cassandra spring-data spring-data-cassandra

我的实体有一个字段

@Column("authorizations")
@Builder.Default
private Map<String, Set<String>> authorizations = new HashMap<>();

当我通过Spring Data存储库查询该对象时,我遇到了异常

  

CodecNotFoundException:找不到请求的操作的编解码器:   [设置<-> java.util.Set]

写入工作正常。我不敢相信不立即可用。

表定义

CREATE TABLE resource_authorization_rules(
  resource text,
  region text,
  authorizations map<text, frozen<set<text>>>,
  PRIMARY KEY (resource, region)
);

可能带有类型擦除的内容。如何毫不费力地解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是Spring Data Casasndra的局限性。有一个JIRA for improving support of frozen collections。看起来可以与described here这样的自定义行映射器一起解决此问题。

P.S。 DataStax Java驱动程序的对象映射器中有corresponding annotations