Java 卡桑德拉+;弹簧数据
我使用的是spring数据cassandra,需要使用jpa映射一个字段,该字段在cassandra中的类型为Java 卡桑德拉+;弹簧数据,java,cassandra,spring-data,spring-data-cassandra,Java,Cassandra,Spring Data,Spring Data Cassandra,我使用的是spring数据cassandra,需要使用jpa映射一个字段,该字段在cassandra中的类型为freezed 表脚本: create table IF NOT EXISTS test ( id varchar, name varchar, target frozen<map<text, list<text>>>, primary key (id, name) 如果不存在测试,则创建表( id varchar, 名字叫瓦查尔, 目标冻结, 主键
freezed
表脚本:
create table IF NOT EXISTS test (
id varchar,
name varchar,
target frozen<map<text, list<text>>>,
primary key (id, name)
如果不存在测试,则创建表(
id varchar,
名字叫瓦查尔,
目标冻结,
主键(id、名称)
))
我做了这样的东西:
@Column("target")
@CassandraType(type = DataType.Name.MAP, typeArguments = arrayOf( DataType.Name.MAP))
Map<String, List<String>> target;
@列(“目标”)
@CassandraType(type=DataType.Name.MAP,typeArguments=arrayOf(DataType.Name.MAP))
地图目标;
但是得到错误:
找不到请求操作的编解码器:[list java.util.list];嵌套异常是com.datastax.driver.core.exceptions.CodecNotFoundException:
找不到请求操作的编解码器:[list java.util.list]
请删除
@CassandraType
注释并添加驱动程序映射依赖项
用户模型
@Table(keyspace = "test_space", name = "user")
public class User {
@PartitionKey
private int id;
@Column
private String name;
@Column
private Map<String, List<String>> tags;
}
表数据
cqlsh:test_space> SELECT * FROM user ;
id | name | tags
----+------+----------------------------------------------
2 | user | {'test': ['test'], 'tester': ['one', 'two']}
(1 rows)
cqlsh:test_space>
依赖性聚甲醛
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>3.0.0</version>
</dependency>
com.datasax.cassandra
卡桑德拉驱动映射
3.0.0
请改进您的问题,以明确您真正想问的是什么?它工作得很好,但可能是我的错,因为我没有正确地表达自己,这不正是我需要的。如果可能的话,我当然需要使用ReactiveCrudepository。非常感谢你的回答。
cqlsh:test_space> SELECT * FROM user ;
id | name | tags
----+------+----------------------------------------------
2 | user | {'test': ['test'], 'tester': ['one', 'two']}
(1 rows)
cqlsh:test_space>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>3.0.0</version>
</dependency>