我在卡桑德拉一个用户定义类型,我用下面的语法创建在CQLSH:卡桑德拉的Java驱动程序:com.datastax.driver.core.exceptions.InvalidTypeException:无效的类型,列清单,但类java.lang.String提供
CREATE TYPE order_items (
qty int,
name text,
milk_type text,
size text,
price decimal
);
我的表
现在,我存储的类型“ORDER_ITEMS”这样我就可以存储多个项目为一个对象的名单。
事情是这样的:
CREATE TABLE order (
order_id uuid PRIMARY KEY,
amount decimal,
location text,
items list<frozen<order_items>>,
status text,
message text
);
如果我想存储使用CQLSH的记录,我可以用下面的语法这样做,
INSERT INTO order (order_id,amount,location,items,status,message) VALUES
(e7ae5cf3-d358-4d99-b900-85902fda9bb0, 5, 'San Jose',[{qty:2,name:'mocha',milk_type:'whole',size:'small',price:2.5}], 'PLACED','order is in process');
,但是当我尝试做使用相同的用于cassandra的DataStax Java驱动程序,我无法将用户定义的类型作为对象列表提供。我只能想出一个字符串语法,但显然它抛出了上述错误。
我已经试过指的datastax文件,但显然它仍然是一项正在进行的工作:http://docs.datastax.com/en/developer/java-driver/3.1/manual/udts/
这里是我的Java语法:
session.execute(insertorderPstmt.bind(UUID.randomUUID(),new BigDecimal("4"),"Santa Clara","[{qty:2,name:'mocha',milk_type:'whole',size:'small',price:2.5}]","PLACED","in process"));
和错误:
Exception in thread "main" com.datastax.driver.core.exceptions.InvalidTypeException: Invalid type for value 3, column is a list but class java.lang.String provided
有没有人能够使用java驱动程序存储自定义类型列表?
指出,我已经可以插入使用CQLSH,但我不能使用Java驱动程序 –
@ApoorvMehta已答复更新 –
插入谢谢你,这个作品 –