Java Cassandra:查询结果中缺少列

Java Cassandra:查询结果中缺少列,java,cassandra,nosql,Java,Cassandra,Nosql,这里有一个奇怪的 我有一张卡桑德拉的桌子,叫它“测试”。它有几列。这些都是通过Java驱动程序查询的,使用一个简单的“select*from test where uuid=foo” 这在本地工作,返回所有列 然而,在生产环境中,一列被删除,尽管其中包含数据(这表明该列可以写入) 我已经查看了Row对象的ColumnDefinitions,它确实不包含有问题的列 为什么??任何人都有一个可行的理论吗?如果您使用“select*”作为准备语句,那么如果您的模式发生更改(添加或删除列),您需要重新准

这里有一个奇怪的

我有一张卡桑德拉的桌子,叫它“测试”。它有几列。这些都是通过Java驱动程序查询的,使用一个简单的“select*from test where uuid=foo”

这在本地工作,返回所有列

然而,在生产环境中,一列被删除,尽管其中包含数据(这表明该列可以写入)

我已经查看了Row对象的ColumnDefinitions,它确实不包含有问题的列


为什么??任何人都有一个可行的理论吗?

如果您使用“select*”作为准备语句,那么如果您的模式发生更改(添加或删除列),您需要重新准备语句。直到2.1.3版本,Cassandra才会在模式更改时更新其准备好的语句缓存,所以这在以前的版本中不起作用


请参阅:

您是否使用PreparedStatement进行“select*”查询?如果在定义准备好的语句后表的架构发生更改,则需要重新准备该语句。看:嘿,呃,托尔伯特先生?曾经被男人亲吻过吗?@AndyTolbert:说真的,这是一个惊人的建议,就是这样。非常感谢你。请建议作为答案,这样我可以标记它!mtyson,很乐意帮忙!补充了一个答案。