I tried to insert and retrieve data from a standalone Java program. While I
am able to insert and retrieve the correct data from within the Java
session. After I terminate the session, and rerun only the data retrieval
part, the previous inserted data does not exist anymore, throwing a null
exception. Here's the code:
// Get storage-config file location
System.out.println("storage-config="+DatabaseDescriptor.getConfigFileName());
// Insert some data with key "partner1"
RowMutation rm = new RowMutation("Table1", "partner1");
ColumnFamily cf = new ColumnFamily("Standard1", "Standard");
long now = Calendar.getInstance().getTimeInMillis();
System.out.println(now);
cf.addColumn("firstname", "John1".getBytes(), now);
cf.addColumn("lastname", "Doe1".getBytes(), now);
rm.add(cf);
try {
rm.apply();
} catch (Exception e) {
}
// Retrieve data for key "partner1"
Table table = Table.open("Table1");
try {
Row result = table.getRow("partner1", "Standard1");
System.out.println(result.toString());
ColumnFamily cres = result.getColumnFamily("Standard1");
Map cols = cres.getColumns();
System.out.println(cols.size());
Set c = cols.keySet();
Iterator it = c.iterator();
while (it.hasNext()) {
String cn = (String) it.next();
System.out.println(cn);
System.out.println(new String(cres.getColumn(cn).value()));
}
} catch (Exception e) {
System.out.println("Ex: " + e.getMessage());
}
the print out from above is
storage-config=~/Cassandra/trunk/conf/storage-conf.xml
1245270260114
Row(partner1 [ColumnFamily(Standard1 [firstname:false:5...@1245270260114,
lastname:false:4...@1245270260114]))]
2
lastname
Doe1
firstname
John1
However, when I commented out the insert part of the above code and try
retrieve data again by rerunning the main code, I got an exception:
Row(partner1 [)]
Ex: null
So the data doesn't seem to persist across sessions.
Could someone explain what's wrong with the code?
Thanks,
Ivan