我正在使用cassandra java datastax 2.1;我一直在尝试使用其mapper类保存一个类,该类是其他类的子类,而我很难解决这一问题。

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

  • 所有分区键字段都应在子类中,即classB
  • 仅保存o​​jit_code中的字段。

  • 我是在做错什么,还是没有办法在Java classB驱动程序中使用继承?

    最佳答案

    我也在这里问了这个问题: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)投票。

    10-01 00:00