2016-03-07 1 views
0

I ont une table dans cassandra qui a une colonne de type MAP (ie) source_id_map cartecausés par: javax.persistence.PersistenceException: org.apache.cassandra.serializers.MarshalException: octets étrangers inattendus après la valeur de la carte

lorsque je tente de lire une ligne de ce tableau, je vois qu'il ya une question lors de la lecture colonne de type carte comme ci-dessous

causée par: javax.persistence.PersistenceException: org.apache.cassandra.serializers. MarshalException: inattendu octets externes après la valeur de la carte 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)

Une autre exception que je remarque est la suivante.

Erreur lors de la récupération de la valeur fieldUTF8Type via CQL, provoquée par:. 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) à com.impetus.client.cassandra.query.CassQuery.populateEntities (CassQuery.java:153) à com.impetus.kundera.query.QueryImpl.fetch (QueryImpl.java:1377) à com.impetus. kundera.query.QueryImpl.getResultList (QueryImpl.java: 200)

+0

S'il vous plaît assurez-vous que cql3 est activé lors de la demande ainsi que des données à l'aide de EntityManager insérer. –

+0

@ChhaviGangwal Je suis nouveau à Cassandra ainsi que kundera. Pouvez-vous s'il vous plaît laissez-moi savoir comment vous assurer que cqls3 est activé? –

Répondre

1

S'il vous plaît permettre CQL3 aussi bien lors de l'insertion ainsi que des données de lecture

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