UnresolvedUserTypeException:无法解析用户类型

时间:2017-10-15 07:51:11

标签: scala cassandra lagom

我有一个这样的案例类:

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中,但我收到此错误,我无法插入任何内容。

需要帮助......

1 个答案:

答案 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)
    )"""
)

希望有所帮助。

此致