Is it possible to use a field that isn't a String as a @RiakKey
? Here's what I have:
public class DomainObject {
@RiakKey private UUID objectId;
}
Unfortunately, the current (v1.4.0) java client bombs out setting the key on deserialization:
java.lang.IllegalArgumentException: Can not set java.util.UUID field com.company.DomainObject.objectId to java.lang.String
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164) ~[na:1.7.0_25]
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168) ~[na:1.7.0_25]
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) ~[na:1.7.0_25]
at java.lang.reflect.Field.set(Field.java:741) ~[na:1.7.0_25]
at com.basho.riak.client.convert.reflect.ClassUtil.setFieldValue(ClassUtil.java:45) ~[riak-client-1.4.0.jar:na]
at com.basho.riak.client.convert.reflect.AnnotationInfo.setRiakKey(AnnotationInfo.java:149) ~[riak-client-1.4.0.jar:na]
...snip
Is there any way to do this without degrading the domain object by changing the UUID to a String?