我有一个springboot应用程序,我和cassandra连接在一起。我试图创建一个Map内的Map,但得到以下例外。
com.datastax.driver.core.exceptions.InvalidQueryException: Non-frozen collections are not allowed inside collections: map<text, map<text, int>>
代码
@Table
@Data
public class AssessmentSubmissionEntity {
@PrimaryKey()
private UUID id;
@Column
private Map<String, Map<String,Integer>> assessmentMap;
}
男人
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
</dependency>
2条答案
按热度按时间k5hmc34c1#
当数据库中有冻结的集合时,还需要将整个列标记为
@Frozen
,或者对于贴图,可以将键或值标记为冻结@FrozenKey
以及@FrozenValue
如果你只想冻结Map的特定部分。下面是冻结整个列的示例。如果只想冻结Map中的数据,则需要将其写入:
有关更多信息和示例,请参阅文档。
8i9zcol22#
请查看Cassandra2.1.8上的非冻结集合和用户定义类型。
您需要添加冻结关键字: