In you first column family, you are using a UUID as a row key (your column
names are strings apparently (phone, addres)). The CompareWith directive
specify the comparator for *column names*. So you are providing strings where
you indicated Cassandra you'll provide UUID, hence the exceptions.

The sorting of rows is determined by the partitioner (and there is no
support for
TimeUUID sorting of rows).

--
Sylvain

On Mon, Oct 18, 2010 at 6:25 PM, cbert...@libero.it <cbert...@libero.it> wrote:
> I am getting crazy using TimeUUID in cassandra via Java. I've read the FAQ but
> it didn't help.
> Can I use a TimeUUID as ROW identifier? (if converted to string)
>
> I have a CF like this and SCF like these:
>
> <ColumnFamily Name="Opecs" CompareWith="TimeUUIDType"/>
> TIMEUUID OPECID (ROW) {
>             phone: 123
>             address: street xyz
> }
>
> <ColumnFamily Name="UserOpecs" ColumnType="Super" CompareWith="TimeUUIDType"
> CompareSubcolumnsWith="BytesType" />
> String USERID (ROW) {
>            TIMEUUID OPECID (SuperColumnName)  {
>                                collection of columns;
>             }
> }
>
> In one situation the TimeUUID is a ROW identifier while in another is the
> SuperColumn name. I get many "UUID must be a 16 byte" when I try to read a 
> data
> that did not give any exception during his save.
>
> at a Time T0 this one works: mutator.writeColumns(UuidHelper.timeUuidFromBytes
> (OpecID).toString(), opecfamily, notNull); // (notnull contains a list of
> columns also opecstatus)
>
> Immediately after this one raise an exception: selector.getColumnFromRow
> (UuidHelper.timeUuidFromBytes(OpecID).toString(), opecfamily, "opecstatus",
> ConsistencyLevel.ONE)
>
> I hope that someone help me understanding it ...
>
>

Reply via email to