如何使用Springdata将Enum存储到Cassandra中?

时间:2016-03-17 10:18:20

标签: java enums cassandra spring-data

我正在尝试使用Springdata框架将枚举存储到Cassandra中。这可能吗?我已经定义了我的枚举:

    public enum Currency {
        GBP, 
        USD, 
        EUR
    }

然后我用" @ Enumerated"定义我的课程。该领域的注释:

@Table
public class BondStatic {

    @PrimaryKey
    private String id;

    private String isin;
    private String ticker;
    private Date maturity;
    private Double coupon;
    @Enumerated(EnumType.STRING)
    private Currency currency;
    ...

这些是我的进口商品:

import com.datastax.driver.mapping.EnumType;
import com.datastax.driver.mapping.annotations.Enumerated;

然后我有Spring的Component类:

@Component
class CassandraDataCLR implements CommandLineRunner {

    @Autowired
    public BondStaticCassandraRepository bondStaticRepository;
    ...

哪个是自动装配的:

@RepositoryRestResource(path = "/bond-static")
interface BondStaticCassandraRepository extends CassandraRepository<BondStatic> {

}

这些是我的进口商品:

import org.springframework.data.cassandra.repository.CassandraRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

但是当我尝试运行以下内容时:

    bondStaticRepository.save(bondStatics);

我明白了:

Value 0 of type class pojo.PocEnums$Currency does not correspond to any CQL3 type

有什么建议吗?简单的解决方案是将我的字段设置为字符串并在getter和setter中使用枚举,但是如果我可以让它工作,似乎有一个带注释的枚举是一个更清晰的解决方案。

0 个答案:

没有答案