2

Я пытался получить список элементов из таблицы продуктов из db на идентификаторе search.there я добавил столбец UDT в таблице продуктов.UDT error- pageCount не является полем, определенным в этом UDT

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

в методе Init -

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 

, что я делаю неправильно?

+0

Нам нужна дополнительная информация, чтобы помочь вам. Какова ваша схема? Как вы определили этот UDT? Как выглядит картограф? –

ответ

0

Там я добавил столбец UDT в таблице продуктов.

ли вы добавить столбец в качестве команды ALTER TYPE CQL после вызова ?:

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

Если это так, что, вероятно, происходит то, что ваш UDTMapper имеет устаревшую ссылку на UserType что представлял собой UDT в момент создания вашего картографа. Это не похоже на то, что драйвер datastax обновит эту ссылку. Я вижу билет jira с похожим сообщением об ошибке (JAVA-1126). Я прокомментирую этот билет, спрашивая, есть ли это что-то, что должно быть поддержано.