我想我的代码和查询中遗漏了一些东西。下面的代码给了我下面的错误(在代码下面)。
我认为这是因为我的数据和表不匹配,但一切看起来都很好。
有人能帮帮我吗?
public void insertFarmers( \
int id, String city, HashMap<String, String>the_farmers, List<String>foods, \
List<String> delivery, int food_id, int cost, HashMap<String, String>food_item, \
String unit) {
Cluster cluster = Cluster.builder()
.addContactPoints(serverIP)
.build();
try (Session session = cluster.connect("farm_db")) {
String insert_query = "INSERT INTO farmers \
(farmer_id, city, foods, delivery, the_farmers, \
food_id, cost, food_item, unit) \
VALUES (?,?,?,?,?,?,?,?,?)";
PreparedStatement pStatement = session.prepare(insert_query);
BoundStatement bStatement = pStatement.bind(id, city, the_farmers, foods, \
delivery, food_id, cost, food_item, unit);
session.execute(bStatement);
}
}
错误:
第一个
2条答案
按热度按时间jdgnovmf1#
该错误指示架构和代码之间不匹配。
表中的一列具有CQL类型
list<varchar>
,但您插入的HashMap
数据类型与CQLlist
不兼容。关于如何提出好的问题的友好注解。一般指导是您(a)提供问题的良好摘要,包括软件/组件版本、完整的错误消息+完整的堆栈跟踪;(B)描述你试图解决问题的方法,以及你所做调查的细节;以及(c)复制问题的最小样本代码。
在您的例子中,您需要提供表模式,因为它与回答您的问题相关。
pw9qyyiw2#
您的架构与代码不匹配。您有一个类型为
list<text>
的列,但试图插入map<text, text>