我正在尝试使用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中使用枚举,但是如果我可以让它工作,似乎有一个带注释的枚举是一个更清晰的解决方案。