我有一个这样的案例类:
case class Address(id String, location String)
case class Person(id String, name String, address Option[Address])
现在我想在cassandra表中存储这些case类。我正在使用Lagom Persistence。所以我创建了Read side Processor来完成这项任务。我在setGlobalPrepare方法下编写了以下内容:
session.executeWrite("""
| CREATE TYPE Address(
| id text,
| location text)""".stripMargin)
session.executeCreateTable("""
| CREATE TABLE Person(
| id text,
| name text,
| address frozen<Address>,
| PRIMARY KEY((id),name)
| )""".stripMargin)
但这显示错误&#34; UnresolvedUserTypeException:无法解析用户类型testdatabase.id&#34; (testdatabase是键空间),并且地址UDT的名称相同。
首先我认为这是因为将来所有命令的执行都在运行所以我尝试使用map来等待在UDT之前创建主表但是没有工作。所有的表都显示在cassandra中,但我收到此错误,我无法插入任何内容。
需要帮助......
答案 0 :(得分:0)
还应在“executeCreateTable”中调用类型创建,并且应在“冻结”和UDT名称之间添加空格。
session.executeCreateTable("""
CREATE TYPE IF NOT EXISTS Address(
id text,
location text
)"""
)
session.executeCreateTable("""
CREATE TABLE IF NOT EXISTS Person(
id text,
name text,
address frozen <Address>,
PRIMARY KEY((id),name)
)"""
)
希望有所帮助。
此致