当前位置: 首页 > 知识库问答 >
问题:

Cassandra Springboot冻结列异常

程旭尧
2023-03-14

我有一个与cassandra连接的springboot应用程序。我试图在地图中创建一个地图,但得到了下面的异常。

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个答案

江亮
2023-03-14

请查看Cassandra 2.1.8中的非冻结集合和用户定义类型。

您需要添加冻结关键字:

@Column
private Map<String, frozen Map<String,Integer>> assessmentMap;
康烨伟
2023-03-14

当您在数据库中有冻结集合时,您还需要将整列标记为@Frozen,或者对于地图,您可以使用@FrozenKey@FrozenValue将键或值标记为冻结,如果您只想冻结地图的特定部分。这是冻结整个列的示例。

@Table
@Data
public class AssessmentSubmissionEntity {

    @PrimaryKey()
    private UUID id;

    @Frozen
    @Column
    private Map<String, Map<String,Integer>> assessmentMap;    
}

如果只想冻结地图内的数据,则需要将其写入:

    @FrozenValue
    @Column
    private Map<String, Map<String,Integer>> assessmentMap;    

更多信息

 类似资料:
  • 问题内容: 比较输出结果可以发现差异: Pip的文档状态 但是什么是“需求格式”?为什么生成的清单比清单更全面? 问题答案: 使用时,可以指定一个文件来安装所有依赖项。 典型用法: 软件包需要采用特定的格式才能理解,即 那就是“要求格式”。 在这里,意味着安装版本(即使最新版本是1.6.x)。如果您未指定,则会安装可用的最新版本。 您可以在“ Virtualenv和pip基础”以及官方的“ Req

  • 问题内容: 这是一个片段 我正在使用和作为文本框。文本框应显示“ Hello”,然后等待一秒钟,但是,当我尝试执行此操作时,它会等待一秒钟,然后放置“ Hello”一词,这不是我想要的。 我不确定为什么会这样,因为我将其按逻辑顺序放置。如果有人可以帮助我,那就太好了。 编辑: 有谁知道替代方案,所以我可以使用“延迟”效果吗? 问题答案: 永远不要从Swing事件线程中调用Thread.sleep(

  • 我一直试图使这个应用程序,将产生一个折线图后,我点击"添加新数据项"按钮。现在,在我点击按钮后,什么都没发生(gui冻结),在我最大化框架后,图形出现在框架内,这意味着我的程序工作了,但我不知道为什么我的gui冻结了。我见过类似的问题,人们回答说必须引入一个新的线程来处理不同的拍摄,我也尝试过,但它仍然不起作用,只是让情况变得更糟。有人知道我犯了什么错误吗?这是我的代码: 谢谢你!

  • 问题内容: 我正在尝试使用Swing和ACM交互程序制作一个非常简单的程序。它直接从课堂讲义中获取,但在我的计算机上不起作用。当我运行它时,它可以正常运行约半秒钟,然后短暂闪烁,重新加载,然后所有按钮和文本字段功能都丢失。这是代码: 如果有帮助,我将在运行Mac OSX 10.8.4的2010年中的Mac Pro上将Java SE 1.6与Eclipse Helios Service Releas

  • 当数据被不可变地借用时,它还会冻结(freeze)。已冻结(frozen)数据无法通过原始对象来修改,直到指向这些数据的所有引用离开作用域为止。 fn main() { let mut _mutable_integer = 7i32; { // 借用 `_mutable_integer` let _large_integer = &_mutable_

  • 『冻结』你的代码是指创建单个可执行文件,文件里包含所有程序代码以及 Python 解释器。 像 Dropbox、星战前夜、文明 4 和 BitTorrent 客户端都是如此。 进行这种分发的好处是你的用户不需要安装所要求的 Python 版本(或其他)即可直接运行你的应用程序。 在 Windows 上,甚至许多 Linux发行版和 OS X,系统自带的 Python 版本总是不尽如人意,此时这种分