有没有办法使用带继承的Cassandra datastax映射器?

时间:2015-08-17 18:57:33

标签: java cassandra datastax-java-driver

我正在使用cassandra java datastax 2.1;我一直在尝试使用它的mapper类来保存一个类,这个类是其他类的子类,我很难搞清楚。

到目前为止,我发现classBclassA的子类,如果我尝试使用mapper保存classB,那么:

  1. 所有分区键字段都应在子类中,即classB
  2. 仅保存classB中的字段。
  3. 我做错了什么或者没有办法在Java datastax驱动程序中使用继承?

1 个答案:

答案 0 :(得分:6)

我在这里也问了这个问题:Datastax Cassandra - Inheritance when using object mapper

我找到了一个我在相应票证中提出的解决方案: https://datastax-oss.atlassian.net/browse/JAVA-541

因此,您需要将com.datastax.driver.mapping.AnnotationParser类导入项目(覆盖现有类)并更改第74行

 for (Field field : entityClass.getDeclaredFields()) 

for (Field field : entityClass.getFields()) 

如果这是一个好的,防弹的或持久的解决方案我不能保证,但对于我的用例,它完成了这项工作。

如果您对此功能的正式实施感兴趣,可以使用票证(https://datastax-oss.atlassian.net/browse/JAVA-541)。