@@ -37,6 +37,10 @@ private ExternalPropertyType() { }
37
37
public static final short Int128 = 100 ;
38
38
public static final short Reserved1 = 101 ;
39
39
/**
40
+ * A UUID (Universally Unique Identifier) as defined by RFC 9562.
41
+ * ObjectBox uses the UUIDv7 scheme (timestamp + random) to create new UUIDs.
42
+ * UUIDv7 is a good choice for database keys as it's mostly sequential and encodes a timestamp.
43
+ * However, if keys are used externally, consider UuidV4 for better privacy by not exposing any time information.
40
44
* Representing type: ByteVector
41
45
* Encoding: 1:1 binary representation (16 bytes)
42
46
*/
@@ -47,9 +51,26 @@ private ExternalPropertyType() { }
47
51
* Encoding: 1:1 binary representation (16 bytes)
48
52
*/
49
53
public static final short Decimal128 = 103 ;
50
- public static final short Reserved2 = 104 ;
51
- public static final short Reserved3 = 105 ;
52
- public static final short Reserved4 = 106 ;
54
+ /**
55
+ * UUID represented as a string of 36 characters, e.g. "019571b4-80e3-7516-a5c1-5f1053d23fff".
56
+ * For efficient storage, consider the Uuid type instead, which occupies only 16 bytes (20 bytes less).
57
+ * This type may still be a convenient alternative as the string type is widely supported and more human-readable.
58
+ * In accordance to standards, new UUIDs generated by ObjectBox use lowercase hexadecimal digits.
59
+ * Representing type: String
60
+ */
61
+ public static final short UuidString = 104 ;
62
+ /**
63
+ * A UUID (Universally Unique Identifier) as defined by RFC 9562.
64
+ * ObjectBox uses the UUIDv4 scheme (completely random) to create new UUIDs.
65
+ * Representing type: ByteVector
66
+ * Encoding: 1:1 binary representation (16 bytes)
67
+ */
68
+ public static final short UuidV4 = 105 ;
69
+ /**
70
+ * Like UuidString, but using the UUIDv4 scheme (completely random) to create new UUID.
71
+ * Representing type: String
72
+ */
73
+ public static final short UuidV4String = 106 ;
53
74
/**
54
75
* A key/value map; e.g. corresponds to a JSON object or a MongoDB document (although not keeping the key order).
55
76
* Unlike the Flex type, this must contain a map value (e.g. not a vector or a scalar).
@@ -123,7 +144,7 @@ private ExternalPropertyType() { }
123
144
*/
124
145
public static final short MongoRegex = 127 ;
125
146
126
- public static final String [] names = { "Unknown" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "Int128" , "Reserved1" , "Uuid" , "Decimal128" , "Reserved2 " , "Reserved3 " , "Reserved4 " , "FlexMap" , "FlexVector" , "Json" , "Bson" , "JavaScript" , "Reserved5" , "Reserved6" , "Reserved7" , "Reserved8" , "Int128Vector" , "Reserved9" , "UuidVector" , "Reserved10" , "Reserved11" , "Reserved12" , "Reserved13" , "MongoId" , "MongoIdVector" , "MongoTimestamp" , "MongoBinary" , "MongoRegex" , };
147
+ public static final String [] names = { "Unknown" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "Int128" , "Reserved1" , "Uuid" , "Decimal128" , "UuidString " , "UuidV4 " , "UuidV4String " , "FlexMap" , "FlexVector" , "Json" , "Bson" , "JavaScript" , "Reserved5" , "Reserved6" , "Reserved7" , "Reserved8" , "Int128Vector" , "Reserved9" , "UuidVector" , "Reserved10" , "Reserved11" , "Reserved12" , "Reserved13" , "MongoId" , "MongoIdVector" , "MongoTimestamp" , "MongoBinary" , "MongoRegex" , };
127
148
128
149
public static String name (int e ) { return names [e ]; }
129
150
}
0 commit comments