java - spring-data-cassandra 无法转换枚举

标签 java spring cassandra spring-data spring-data-cassandra

我正在尝试让 spring-data 将我的枚举类型转换为 cassandra 中的 int 字段,但出现以下异常:

Unexpected runtime exception java.lang.IllegalArgumentException: 
Value 2 of type class com.twc.atg.td.dbo.client.ClassCode does not correspond to any CQL3 type   

这是我正在使用的代码片段:

@Enumerated(EnumType.ORDINAL)
@Column("class_code")
public ClassCode classCode;

最佳答案

由于spring-data-cassandra不支持,你可以在getters/setters中实现这个逻辑。

@Table
public class Writer {
    ...
    public enum WriterType {
        POET, DETECTIVE, JOUNALIST
    }

    ...
    @Column(value = "writer_type")
    private Integer writerType;

    ...
    public WriterType getWriterType() {
        return WriterType.values()[writerType];
    }

    public void setWriterType(WriterType writerType) {
        this.writerType = writerType.ordinal();
    }

关于java - spring-data-cassandra 无法转换枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33532985/

相关文章:

mysql - 组织.hibernate.MappingException : Named query not known

spring - Gradle Spring Boot 依赖项未找到多模块项目

cassandra - NoClassDefFound错误: io/netty/handler/timeout/IdleStateHandler Datastax dse java driver

java - 如何确定哪个用户正在从 Android 应用程序发出 Rest 请求?

java - 将 CSV 文件列中的相似项目分组为主键

java - 迭代 for 循环以获取字符串列表并存储元素值

spring - 基于 spring 配置文件设置 Sentry 属性

java - 我想有效地将​​正则表达式应用于整个文件

java - 使用 Spark Streaming 连接到 Cassandra 时出错

java - 在 Cassandra 2+ 中存储简单的键值对