【问题标题】:UDT error- pageCount is not a field defined in this UDTUDT 错误 - pageCount 不是此 UDT 中定义的字段
【发布时间】:2016-09-19 14:20:29
【问题描述】:

我试图从 db 的 id 搜索中的产品表中获取项目列表。我在产品表中添加了一个 UDT 列。

try
{
  final List<Row> rows = session.execute(boundStatement.bind(pId, pmyTime)).all();
  if (!rows.isEmpty())
  {
    productDataList = ProductMapper.extractResult(rows, myBomObjMapper);
  }
}

在初始化方法中-

    public void init(){

         session = cassandraSessionFactory.getSession();
         myObjMapper = new MappingManager(session).udtMapper(BomObject.class);

}

我遇到了异常

     java.lang.IllegalArgumentException: pageCount is not a field defined in this UDT

我做错了什么?

【问题讨论】:

  • 我们需要更多信息才能为您提供帮助。你的架构是什么?您是如何定义该 UDT 的?映射器的外观如何?

标签: spring datastax cassandra-2.0 datastax-java-driver spring-data-cassandra


【解决方案1】:

我在产品表中添加了一个 UDT 列。

你是不是在调用后将该列添加为ALTER TYPE cql 命令?:

myObjMapper = new MappingManager(session).udtMapper(BomObject.class);

如果是这种情况,可能发生的情况是您的 UDTMapper 具有对 UserType 的陈旧引用,该引用代表您构建映射器时的 UDT。看起来 datastax 驱动程序不会更新此参考。我看到一张带有类似错误消息的 jira 票证 (JAVA-1126)。我会评论那张票,询问这是否应该得到支持。

【讨论】:

    猜你喜欢
    • 2019-12-08
    • 2017-07-07
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多