2016-03-07 1 views
0

У меня есть таблица в Кассандре, которая имеет столбец типа MAP (т.е.) source_id_map картевызвано следующими причинами: javax.persistence.PersistenceException: org.apache.cassandra.serializers.MarshalException: Неожиданные посторонние байтов после значения карте

Когда я пытаюсь прочитать строку из этой таблицы, я вижу, что есть некоторая проблема при чтении столбца типа карты, как показано ниже

Вызванный: javax.persistence.PersistenceException: org.apache.cassandra.serializers. MarshalException: Неожиданно посторонние байты после значения карты at com.impetus.cli ent.cassandra.datahandler.CassandraDataHandlerBase.setCollectionValue (CassandraDataHandlerBase.java:2526) на com.impetus.client.cassandra.datahandler.CassandraDataHandlerBase.setFieldValueViaCQL (CassandraDataHandlerBase.java:1504) на com.impetus.client.cassandra.datahandler. CassandraDataHandlerBase.populateViaThrift (CassandraDataHandlerBase.java:1163) на com.impetus.client.cassandra.datahandler.CassandraDataHandlerBase.onColumn (CassandraDataHandlerBase.java:1054) в com.impetus.client.cassandra.datahandler.CassandraDataHandlerBase.populateEntity (CassandraDataHandlerBase. java: 653)

Другое исключение, которое я замечаю, приводится ниже.

Ошибка при получении значения поляUTF8Type через CQL, вызвана:. java.lang.IllegalArgumentException на java.nio.Buffer.limit (Buffer.java:267) на org.apache.cassandra.utils.ByteBufferUtil.readBytes (ByteBufferUtil.java:543) на org.apache.cassandra. utils.ByteBufferUtil.readBytesWithShortLength (ByteBufferUtil.java:552) на org.apache.cassandra.serializers.CollectionSerializer.readValue (CollectionSerializer.java:128) на org.apache.cassandra.serializers.MapSerializer.deserializeForNativeProtocol (MapSerializer.java: 104) в com.impetus.client.cassandra.schemamanager.CassandraDataTranslator $ MapTypeBuilder.decompose (CassandraDataTranslator.java:1177) в com.impetus.client.cassandra.schemamanager.CassandraDataTranslator $ MapTypeBuilder.access $ 4800 (CassandraDataTranslator.java:1100) на com.impetus.client.cassandra.schemamanager.CassandraDataTranslator.decompose (CassandraDataTranslator.java:507) в com.impetus.client.cassandra.datahandler.CassandraDataHandlerBase.setCollectionValue (CassandraDataHandlerBase.java:2518) в com.impetus. client.cassandra.datahandler.CassandraDataHandlerBase.setFieldValueViaCQL (CassandraDataHandlerBase.java:1504) на com.impetus.client.cassandra.datahandler.CassandraDataHandlerBase.populateViaThrift (CassandraDataHandlerBase.java:1163) на com.impetus.client.cassandra.datahandler. CassandraDataHandlerBase.onColumn (CassandraDataHandlerBase.java:1054) на com.impetus.client.cassandra.datahandler.CassandraDataHandlerBase.populateEntity (CassandraDataHandlerBase.java:653) в com.impetus.client.cassandra.CassandraClientBase $ CQLCli ent.executeQuery (CassandraClientBase.java:2272) на com.impetus.client.cassandra.CassandraClientBase.executeSelectQuery (CassandraClientBase.java:926) на com.impetus.client.cassandra.thrift.ThriftClient.executeQuery (ThriftClient.java: 1062) at com.impetus.client.cassandra.query.CassQuery.populateEntities (CassQuery.java:153) at com.impetus.kundera.query.QueryImpl.fetch (QueryImpl.java:1377) at com.impetus. kundera.query.QueryImpl.getResultList (QueryImpl.Java: 200)

+0

Пожалуйста, убедитесь, что cql3 включен во время запроса, а также вставки данных с использованием EntityManager. –

+0

@ChhaviGangwal Я новичок в cassandra, а также в kundera. Не могли бы вы дать мне знать, как обеспечить включение cqls3? –

ответ

1

Пожалуйста, включите CQL3 как при вставке, а также данные для чтения

Map propertyMap = new HashMap(); 
propertyMap.put(CassandraConstants.CQL_VERSION, CassandraConstants.CQL_VERSION_3_0); 
EntityManagerFactory emf = Persistence.createEntityManagerFactory("cassandra-pu",propertyMap); 

 Смежные вопросы

  • Нет связанных вопросов^_^