Playorm java.lang.Integer cannot be cast to java.math.BigInteger -


i tried construct basic ad hoc query example based on a basic ad hoc query example .

but, can't insert integer value. think because of piece of code:

private class getstoragetypeasclass() {     switch (getstoragetype())     {         case string:             return string.class;         case integer:             return biginteger.class;     } } 

my code:

package playorm;  import java.util.hashmap; import java.util.iterator; import java.util.map; import java.util.uuid;  import com.alvazan.orm.api.base.bootstrap; import com.alvazan.orm.api.base.dbtypeenum; import com.alvazan.orm.api.base.nosqlentitymanager; import com.alvazan.orm.api.base.nosqlentitymanagerfactory; import com.alvazan.orm.api.z3api.nosqltypedsession; import com.alvazan.orm.api.z8spi.keyvalue; import com.alvazan.orm.api.z8spi.meta.dbocolumncommonmeta; import com.alvazan.orm.api.z8spi.meta.dbocolumnidmeta; import com.alvazan.orm.api.z8spi.meta.dbodatabasemeta; import com.alvazan.orm.api.z8spi.meta.dbotablemeta; import com.alvazan.orm.api.z8spi.meta.typedcolumn; import com.alvazan.orm.api.z8spi.meta.typedrow;  public class playorm {     private static nosqlentitymanager mgr;      @suppresswarnings({ "unchecked", "rawtypes" })     public static void main(string[] args) {          map properties = new hashmap();         properties.put(bootstrap.auto_create_key, "create");          string clustername = "test cluster";         string seeds = "localhost:9160";         string keyspace = "nosql";          bootstrap.createandaddbestcassandraconfiguration(properties, clustername, keyspace, seeds);         nosqlentitymanagerfactory factory = bootstrap.create(dbtypeenum.cassandra, properties,null,null);         mgr = factory.createentitymanager();         dbodatabasemeta metadb = mgr.find(dbodatabasemeta.class,                 dbodatabasemeta.meta_db_rowkey);         dbotablemeta meta = new dbotablemeta();         meta.setup(null, "myentity", false);         metadb.addmetaclassdbo(meta);          dbocolumnidmeta idmeta = new dbocolumnidmeta();         idmeta.setup(meta, "idfield", string.class, true);         mgr.put(idmeta);          dbocolumncommonmeta fielddbo = new dbocolumncommonmeta();         fielddbo.setup(meta, "firstname", string.class, true, false);         mgr.put(fielddbo);         dbocolumncommonmeta fielddbo2 = new dbocolumncommonmeta();         fielddbo2.setup(meta, "lastname", integer.class, true, false);         mgr.put(fielddbo2);          mgr.put(meta);         mgr.flush();          nosqltypedsession session = mgr.gettypedsession();         (int = 0; < 10000; i++) {             typedrow typedrow = session.createtypedrow("myentity");             typedrow.addcolumn("firstname", "harry");                         //**the problem**             typedrow.addcolumn("lastname", new integer(i));             typedrow.setrowkey(uuid.randomuuid().tostring());              session.put("myentity", typedrow);              if(i > 1000 && (i % 10) == 0 ){                 session.flush();                 mgr.clear();             }          }         session.flush();  } 

there no option return integer.class. so, can't construct integer converter:

exception in thread "main" java.lang.reflect.invocationtargetexception     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ com.alvazan.orm.impl.meta.data.nosqlproxyimpl.invoke(nosqlproxyimpl.java:96)     @ com.alvazan.orm.api.z8spi.meta.dbocolumncommonmeta_$$_javassist_1.converttostorage2(dbocolumncommonmeta_$$_javassist_1.java)     @ com.alvazan.orm.api.z8spi.meta.typedrow.addcolumn(typedrow.java:99)     @ playorm.playorm.main(playorm.java:62) caused by: java.lang.classcastexception: java.lang.integer cannot cast java.math.biginteger     @ com.alvazan.orm.api.z8spi.conv.converters$bigintegerconverter.converttonosqlimpl(converters.java:89)     @ com.alvazan.orm.api.z8spi.conv.converters$baseconverter.converttonosql(converters.java:138)     @ com.alvazan.orm.api.z8spi.meta.dbocolumnmeta.converttostorage2(dbocolumnmeta.java:167)     @ com.alvazan.orm.api.z8spi.meta.dbocolumncommonmeta_$$_javassist_1._d8converttostorage2(dbocolumncommonmeta_$$_javassist_1.java)     ... 8 more 

typedrow special api , allows biginteger, bigdecimal , string types right now.....these types when stored stored lowest bytes possible int value of 10 stored 1 byte.

out of curiosity, why not use myentity.java class annotated @nosqlentity instead??? in case, using pojo seem more beneficial.

myentity.java can have primitive types, int, double, etc. etc.

we thought using entities use entities make development faster.

later, dean


Comments

Popular posts from this blog

html - How to style widget with post count different than without post count -

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

javascript - storing input from prompt in array and displaying the array -